正确的方法使用sizeThatFits:和sizeToFit与UILabel?
目前我使用[aString sizeWithFont:constrainedToSize:lineBreakMode:]正确调整了标签尺寸但是我已经将旋转引入了我的设备并且具有灵活的宽度和高度,这导致我的UILabel拉伸宽度方式(因为它的设置相对于主视图)但不是在高度方向收缩以补偿额外的空间。
在另一个问题中,我问过我被告知要使用
sizeToFit
和/或sizeThatFits:
但是我在互联网上找不到任何有用的资源,它告诉我如何正确使用这些资源,我所做的试验会导致非理性行为。
简而言之,假设我有这样的结构:
UIView *innerView = [[UIView alloc] initWithFrame:CGRectMake(10, 10, self.view.frame.size.width-20, 0)];
[innerView setAutoresizingMask:*flexible width and height*]
[innerView setBackgroundColor:[UIColor redColor]];
[self.view addSubview:innerView];
UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, innerView.frame.size.width-20, 0)];
[myLabel setAutoresizingMask:*flexible width and height*]
[myLabel setBackgroundColor:[UIColor blueColor]];
[myLabel setNumberOfLines:0];
[myLabel setLineBreakMode:UILineBreakModeWordWrap];
[innerView addSubview:myLabel];
这是一个简化的版本(也是通过免责声明,这不是我的实际代码,我意识到这些元素将泄漏和其他一切......这只是一个例子,所以你可以看到结构)。
基本上我有这两个元素。现在轮换时,它们都会伸展以适应新的视图大小。我需要的是一种增加或减少高度以动态适应内容的方法。 [aString sizeWithFont...]
只是静态的。那么我如何使用sizeToFit
或sizeThatFits
来实现这种动态呢?
谢谢。
汤姆
没有找到相关结果
已邀请:
1 个回复
拈吉勉犬姆
然后,为didRotateFromInterfaceOrientation中的每个视图模式相应地设置标签的框架。 以下是调整字符串长度标签帧大小的示例:http://cocoamatic.blogspot.com/2010/08/uilabel-dynamic-sizing-based-on-string.html