La raison l'affiche originale du code ne fonctionne pas, c'est qu'il semble que le cadre de la textLabel est définie après la UITableViewCell a été retourné à partir de votre délégué de la méthode.
J'ai remarqué que je peux réussir à modifier plusieurs propriétés de la textLabel, tels que l'alignement du texte, la couleur, la police, etc, mais en modifiant l'image n'a aucun effet et lorsque j'imprime le cadre de la débogueur plus tard (sur sélection), l'image n'est pas ce que j'ai mis. Par conséquent, je conclus que le framework UIKit est en train de modifier le cadre de la textLabel après il est retourné à partir de la méthode du délégué. Pas de doute, c'est probablement fait parce que les ingénieurs d'Apple voulait faire en sorte que votre texte a été établi à l'écran, de sorte qu'ils de la mesurer et de modifier l'image afin qu'elle s'adapte. Ils ont probablement pensé que les gens comme nous qui voulait modifier la position du texte serait en mesure de le faire par la sous-classement, ou simplement en ajoutant une autre UILabel (ou autre) comme une sous-vue. Un novice développeur peut avoir un moment très difficile, si son texte n'apparaît pas sur l'étiquette ou l'a été tronqué parce qu'ils n'ont pas de régler l'image.
Dans mon cas, je voulais que le texte à centrer horizontalement, soit d'une couleur/police/taille, et à être légèrement plus élevé verticalement dans la cellule. Trop paresseux pour la sous-classe la présente, j'ai d'abord essayé de modifier le cadre. Lorsque cela ne fonctionne pas, j'ai essayé de googler la réponse (trouvé ce post).
Ma solution finale a été de définir la numberOfLines propriété à 0 et ajouter un peu de fuite des retours chariot à mon texte. Maintenant QUE c'est un paresseux.