我觉得这是一个非常简单的问题-我在高低寻找一个答案,却一无所获。
在我的UITableViewController中,设置我的自定义UITableViewCell(在情节提要中)的UILabel的文本。我希望标签的宽度等于文本的宽度(计算起来并不难)再加上大约20的常数。我看不出找到设置此方法的方法吗?
我是否应该只以编程方式创建UILabel?自动排版可以帮我解决这个问题吗?

最佳答案

正如您所描述的,在界面生成器中这可能是不可能的。您可以做的一件事是为标签的固有内容大小指定不同的值。创建一个迷你UILabel子类:

@interface Plus20UILabel : UILabel
@end

@implementation Plus20UILabel

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

@end


然后在IB中将标签指定为Plus20UILabel。这会将新值输入到AutoLayout引擎中,并相应地调整标签和所有内容。

10-06 05:16
查看更多