UILabel宽度和Autolayout难度很大

时间:2015-02-02 23:14:19

标签: ios objective-c autolayout uilabel

我觉得这是一个非常简单的问题 - 我已经搜索了高低的答案并且没有提出任何问题。 在我的UITableViewController中,我设置了自定义UITableViewCell的UILabel文本(在故事板中制作)。我希望标签的宽度是文本的宽度(这并不难计算)加上大约20的常数。我无法找到一种设置方法吗? 我是否必须以编程方式创建UILabel?自动布局可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

在界面构建器中,这可能是不可能的,因为您已经描述过它。您可以做的一件事是为标签的内在内容大小指定不同的值。创建一个迷你UILabel子类:

@interface Plus20UILabel : UILabel
@end

@implementation Plus20UILabel

-(CGSize)intrinsicContentSize{
    CGSize contentSize = [super intrinsicContentSize];
    return CGSizeMake(contentSize.width + 20, contentSize.height);
} 

@end

然后在IB中指定标签是Plus20UILabel。这会将新值提供给AutoLayout引擎并相应地调整标签和所有内容。