【发布时间】:2016-01-15 13:02:16
【问题描述】:
【问题讨论】:
-
你想要的结果是什么?
-
删除第二个标签的顶部/底部填充,并具有更适合内容的尺寸
标签: ios cocoa-touch autolayout uilabel
【问题讨论】:
标签: ios cocoa-touch autolayout uilabel
@implementation UILabel (dynamicSizeWidth)
- (void)resizeToStretch {
float width = [self expectedWidth];
CGRect newFrame = [self frame];
newFrame.size.width = width;
[self setFrame:newFrame];
}
- (float)expectedWidth{
[self setNumberOfLines:1];
CGSize maximumLabelSize = CGSizeMake(CGRectGetWidth(self.bounds), CGFLOAT_MAX);
CGSize expectedLabelSize = [[self text] sizeWithFont:[self font]
constrainedToSize:maximumLabelSize
lineBreakMode:[self lineBreakMode]];
return expectedLabelSize.width;
}
@end
在 iOS6 之外,您可以使用 Autolayout,将行数设置为 0,然后框架会适当地调整您的标签大小以适合您的文本。
【讨论】: