我有一个内部UILabel的UIVIew,我希望UILabel和UIView包装文本内容大小。 因此,我计算文字大小,并将UIView的框架和UIlabel的框架设置为新的高度。 UIView完美调整大小,但UILabel不会调整大小。总是保持相同的尺寸。不知道为什么UILabel调整大小将无法正常工作
这里是我的代码:
[mylabel setNumberOfLines:0];
CGSize maximumLabelSize = CGSizeMake(mylabel.frame.size.width, 160);
CGSize expectedLabelSize = [text sizeWithFont:mylabel.font
constrainedToSize:maximumLabelSize
lineBreakMode:mylabel.lineBreakMode];
CGRect newFrame = mylabel.frame;
newFrame.size.height = expectedLabelSize.height;
mylabel.frame = newFrame;
mylabel.text = text;
myView.frame = CGRectMake(myView.frame.origin.x,
myView.frame.origin.y,
myView.frame.size.width,
newFrame.size.height);
PD:我改变了帧viewDidLayoutSubviews,我应该去做别的地方?
更新: 我在使用Autolayout时遇到了一些限制。我需要Autolayout,因为我有一个导航栏和基于标签栏的应用程序。
该代码看起来应该很好。你是否在代码中的其他任何地方调整标签框架,以覆盖你在这里做的事情? – Putz1103
不是:S,我正在使用自动布局,可能是导致问题。 – 6rod9
我从来没有使用autolayout,所以我没有帮助。 – Putz1103