UITableViewCell. Comment puis-je aligner textLabel par dessus?
Par défaut, un UITableViewCell exemple les positions de l'étiquette de la paire de textLabel/detailTextLabel dans le centre de la vue parente. Je préfère avoir la paire alignée sur le haut de la cellule. Comment puis-je le faire par programmation?
Merci,
Doug
source d'informationauteur dugla
Vous devez vous connecter pour publier un commentaire.
Les documents décrivent -[UIView layoutSubviews] comme
Que la description n'est pas élaboré, mais il est précis. Dans ce cas, le comportement de la méthode est à la disposition de votre sous-vues. Elle sera invoquée à tout moment l'orientation de l'écran change. Il est également planifiée pour la fin de l'invocation à chaque fois que vous appelez -setNeedsLayout.
Depuis, UIView de la mise en œuvre ne fait rien, (et je suppose que la même chose pour UIControl), vous bénéficiez d'une totale liberté de création pour faire de votre sous-classe UIView des sous-vues être placé où vous le souhaitez.
En sous-classement d'un UITableViewCell, vous avez quelques options à essayer:
Dans un SI la questionla recommandation est d'éviter le no 1, la manipulation de l'intégré dans textLabel et detailTextLabel.
Plus fiable pari serait de faire quelque chose comme ceci:
Dans MyTableViewCell, vous serait ignorer les étiquettes de texte et utiliser vos propres UILabels. Vous prenez le contrôle complet sur le positionnement dans le contenu rect de la vue de la table de la cellule.
Je pars beaucoup de choses. En agissant de la mise en page personnalisée, avec les étiquettes de texte, vous voulez à considérer:
De trouver votre propre algorithme de mise en page.
Je suis en utilisant un algorithme de mise en page ci-dessus qui se redimensionne la coutume UILabels pour s'adapter à leur contenu texte, puis les postes côte-à-côte. Vous aurez probablement envie de quelque chose de plus spécifique à votre application.
Garder les étiquettes personnalisées à l'intérieur de l'affichage du contenu.
En layoutSubviews, vous pourriez logique de garder la coutume UILabels dimensionnée et positionnée de sorte qu'ils ne tombent pas en dehors des limites du contenu rect. Avec mon naïve de la logique de présentation, un long texte tombée dans UILabel (ou les deux) peut provoquer les étiquettes pour être positionné à droite de l'affichage du contenu de limites.
Comment gérer -viewDidLoad/-viewDidUnload.
Codé ci-dessus, cette sous-classe ne gère pas chargé à partir d'une plume. Vous pouvez utiliser de l'IB à la disposition de votre cellule, et si vous le faites, vous aurez besoin de penser à -viewDidLoad/-viewDidUnload/-initWithCoder:
La méthode suivante dans votre UITableViewCell la sous-classe rapidement et de façon concise aligner les deux textLabel et detailTextLabel vers le haut de la cellule (clin d'œil à Bill code), sans ajout de vues personnalisées.
Mise en page de la UITableViewCell textLabel et detailTextLabel ne sont pas directement modifiables, sauf en choisissant l'un des styles définis par l'API.
Si vous souhaitez personnaliser UITableViewCell mise en page, vous aurez besoin de sous-classe et remplacer le
-layoutSubviews
méthode.