2010-06-06 5 views
3

J'ai une uitableviewcell personnalisée avec plusieurs labels et j'aimerais que certains d'entre eux autorisent leur frame (largeur) en fonction du contenu (texte). Je ne suis pas sûr de savoir comment accomplir cela. J'ai essayé de définir le cadre fixe de l'étiquette et après l'application de l'autoresizingMask, mais cela ne fait pas l'affaire. Un * pointeur vers un échantillon?Comment faire UILabel avec autoresizingMask dans une cellule personnalisée?

Répondre

2

Utilisez la méthode suivante:

CGSize *size = [label.text sizeWithFont:fontOfLabelText]; 
float widthOfLabel = size.width; 

size.width retourne la largeur réelle que le texte de l'étiquette occupera à l'écran. Définissez la largeur de l'étiquette sur la largeur du texte.

+0

Exactement ce que je cherchais, merci. –

0

Si vous voulez juste faire en sorte que l'étiquette correspond à plusieurs lignes, vous devez dire:

cell.textLabel.numberOfLines = 0; 

Cependant, je ne suis pas sûr que ce soit celui que vous voulez ... En général, si le contenu est du texte que ce sera ce que vous voulez.

3

Si vous voulez régler le cadre d'une étiquette pour adapter le texte des étiquettes, il suffit d'appeler

[label sizeToFit]; 

Cela s'adapter dans les deux dimensions.

Questions connexes