UILabel 宽度和自动布局的困难
Posted
技术标签:
【中文标题】UILabel 宽度和自动布局的困难【英文标题】:Difficulty with UILabel width and Autolayout 【发布时间】:2015-02-02 23:14:19 【问题描述】:我觉得这是一个非常简单的问题——我到处寻找答案,但一无所获。 在我的 UITableViewController 中,我设置了自定义 UITableViewCell 的 UILabel 的文本(在情节提要中制作)。我希望标签的宽度是文本的宽度(这并不难计算)加上一个大约 20 的常数。我找不到设置这个的方法? 我应该只以编程方式创建 UILabel 吗?自动布局不能帮我解决这个问题吗?
【问题讨论】:
两种方法都可以:您可以计算标签内文本的大小并将其框架设置为正确的大小,或者您可以使用自动布局。使用 Xcode 界面构建器设置自动布局约束实际上非常容易。 我想你的答案在这个链接@***.com/questions/8796862/… 【参考方案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 引擎并相应地调整标签和所有内容。
【讨论】:
非常简单的答案!谢谢!!以上是关于UILabel 宽度和自动布局的困难的主要内容,如果未能解决你的问题,请参考以下文章
如何使用自动布局在 iOS 中根据文本长度更改 UILabel 宽度