Les étiquettes dans l'alignement de UITableViewCell
J'utilise UITableView avec les cellules créées à l'aide de UITableViewCellStyleSubtitle. Chaque cellule de la hauteur est réglé de façon dynamique à l'aide de la
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
méthode du délégué.
Le problème, vous pouvez le voir sur la photo
(remarque: l'image mise à jour)
http://img.skitch.com/20090715-g7srxgee2d7fhi5rab2wufrdgm.png
Comment mettre en place aligner de textLabel et detailTextLabel pour le haut de la cellule? (Je n'ai pas vraiment l'habitude de le faire par le sous-classement UITableViewCell et dominante layoutSubviews)
Merci
- Il semble que vos sous-titres de texte circule sur le fond de la cellule et dans la suivante, est-ce que je vois? Aussi, est-ce possible sur le dispositif ou tout simplement Simulateur?
- Vous pouvez poster votre mise en œuvre de heightForRowAtIndexPath?
- Toucher agréable avec la capture d'écran.
- image lien est rompu.
Vous devez vous connecter pour publier un commentaire.
Voici une autre solution sans dérivation de cellules, de sorte qu'il fonctionne certes avec différents styles de tableau. (Je n'ai pas vérifié les autres solutions.) Le titre et le détail des chaînes sont déclarées dans mon UITableViewController en-tête et déjà définis. Ils ne sont pas très long, certainement bien en deçà de la hauteur de 4000!
Bien, celui-ci m'a coûté un après-midi, mais je pense que j'ai tout compris. Aussi loin que je peux dire, ce qui semble être un bug dans la façon de UITableViewCell est à la pose de la textLabel et detailTextLabel. Lorsque vous définissez la hauteur de ligne, il semble attribuer hauteur égale pour les deux labels, ce qui signifie que vous obtenez exactement le comportement que vous voyez ci-dessus, même si detailTextLabel besoin de plus d'espace. Voici les deux choses que j'ai fait pour résoudre le problème. J'ai eu une classe de UITableViewCell à résoudre, mais c'est un minimum de code.
Tout d'abord, assurez-vous que vous êtes le calcul de la hauteur de chaque ligne correctement. Mettre cette méthode dans votre vue de la table délégué. Remplacer la police méthodes avec votre propre:
Ensuite, la sous-classe UITableViewCell et remplacer layoutSubviews:
CGRectMake
. Vous économiserez de l'14 redondant appels de méthode en à peine cette petite méthode. Ces redondant appels de méthode peut résumer et ont un impact sur les performances.Cependant vous êtes dimensionnement de vos cellules, vous devez le faire avec les différentes méthodes de dimensionnement de NSString. De cette façon, vous pouvez déterminer exactement de quelle taille pour faire de la cellule et d'éviter les espaces.
Si il s'avère que le textLabel et detailTextLabel sont fixées à l'aide d'un redimensionnement automatique des masques, peut-être que vous pouvez le faire lorsque vous revenez de la cellule:
Si cela fonctionne, c'est un peu plus facile que de sous-classement de la cellule. Je n'ai pas essayé si.