La raison pour laquelle le code de vérification d'origine ne fonctionne pas est qu'il semble que le cadre du Textlabel est réglé après la UITableViewCell a été renvoyé à partir de votre méthode de délégué.
J'ai remarqué que je peux modifier avec succès de nombreuses propriétés de textLabel, telles que l'alignement du texte, la couleur, la police, etc, mais modifier le cadre n'a aucun effet et quand j'imprime le cadre plus tard), le cadre n'est pas ce que je définis. Par conséquent, je conclus que le cadre UIKit est en train de modifier le cadre du textLabel après qu'il est retourné à partir de la méthode déléguée. Sans doute cela est probablement dû au fait que les ingénieurs d'Apple voulaient s'assurer que votre texte était dessiné à l'écran, alors ils le mesurent et modifient le cadre pour qu'il corresponde. Ils ont probablement pensé que des gens comme nous qui voulaient modifier la position du texte seraient capables de le faire en sous-classifiant, ou simplement en ajoutant un autre UILabel (ou autre) comme sous-vue. Un développeur novice pourrait avoir beaucoup de mal si son texte n'apparaissait pas sur l'étiquette ou était tronqué parce qu'il n'avait pas ajusté le cadre. Dans mon cas, je voulais que le texte soit centré horizontalement, soit une couleur/police/taille spécifique, et légèrement plus haut verticalement dans la cellule. Étant trop paresseux pour sous-classer cela, j'ai d'abord essayé de modifier le cadre. Lorsque cela n'a pas fonctionné, j'ai essayé de googler la réponse (trouvé ce poste).
Ma solution finale consistait à définir la propriété numberOfLines sur 0 et à ajouter des retours chariot à mon texte. Maintenant, c'est paresseux.
Cela fonctionne absolument fantastique :) – Domness
Vous devriez vraiment mettre le cadre d'étiquette à 'self.contentView.bounds' –