在iOS 6中,我使用的:動態調整標籤在IOS 7
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類裏面,但是這是不是也工作... 任何想法,我應該使用?
哪部分不工作?計算的框架尺寸是錯誤的,還是標籤尺寸更改沒有發生? – tarmes