【发布时间】:2013-09-26 13:00:10
【问题描述】:
在 iOS 6 中,我使用的是:
CGSize labelSize = [self.text sizeWithFont:self.font constrainedToSize:size lineBreakMode:self.lineBreakMode];
self.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y , labelSize.width, self.frame.size.height);
动态调整 UILabel 的大小。这在 iOS 7 中不起作用,所以我尝试了:
NSString *text = self.text;
CGFloat width = size.width;
UIFont *font = self.font;
NSAttributedString *attributedText = [[NSAttributedString alloc] initWithString:text
attributes:@{ NSFontAttributeName: font }];
CGRect rect = [attributedText boundingRectWithSize:(CGSize){width, CGFLOAT_MAX}
options:NSStringDrawingUsesDeviceMetrics
context:nil];
CGSize size = rect.size;
self.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y , size.width, self.frame.size.height);
这是在 UILabel 上的一个类别中,但这也不起作用... 任何想法我应该使用什么?
【问题讨论】:
-
哪一部分不工作?是计算的帧大小错误,还是标签大小没有发生变化?
标签: objective-c uilabel ios7