2013-04-29 3 views
0

J'ai un UIView contenant un seul UILabel. Ce UILabel est utilisé pour afficher certaines informations qui peuvent être de longueur différente. Je calcule la hauteur de UILabel en utilisant la méthode [label.text sizeWithFont:label.font constrainedToSize:label.bounds.size lineBreakMode:label.lineBreakMode]. Mais comment redimensionner la hauteur de UIView en fonction de la taille de UILabel?Comment changer la hauteur de UIView en fonction de la hauteur de UILablel à l'intérieur?

Répondre

2
[label.superview setFrame:label.frame]; 

Cela devrait en principe le faire. Vous voudrez peut-être ajouter un peu plus de logique et construire des marges/paddings. Cela signifie que vous devrez diviser self.frame en coordonnées, ajouter des offsets et en créer un nouveau cadre avec CGFrameMake et l'affecter au frame superviews. Prendre la seconde comme une suggestion.

[label.superview setFrame: CGFrameMake(0, 0, label.frame.size.width + 2*label.frame.origin.x, label.frame.size.height + 2*label.frame.origin.y)]; 

Il va mettre l'origine à 0 parce que le cadre de l'étiquette ne peut pas être 0. Puis il ajoute de la place pour une certaine marge autour de l'étiquette en supposant que la marge gauche et la droite sont les mêmes et la marge supérieure et la marge inférieure sont les mêmes .

+0

Merci. J'ai utilisé le second. Ça a marché. – Geek

Questions connexes