【问题标题】:Difficulty with UILabel width and AutolayoutUILabel 宽度和自动布局的困难
【发布时间】:2015-02-02 23:14:19
【问题描述】:

我觉得这是一个非常简单的问题——我到处寻找答案,但一无所获。 在我的 UITableViewController 中,我设置了自定义 UITableViewCell 的 UILabel 的文本(在情节提要中制作)。我希望标签的宽度是文本的宽度(这并不难计算)加上一个大约 20 的常数。我找不到设置这个的方法? 我应该只以编程方式创建 UILabel 吗?自动布局不能帮我解决这个问题吗?

【问题讨论】:

  • 两种方法都可以:您可以计算标签内文本的大小并将其框架设置为正确的大小,或者您可以使用自动布局。使用 Xcode 界面构建器设置自动布局约束实际上非常容易。
  • 我想你的答案在这个链接@stackoverflow.com/questions/8796862/…

标签: ios objective-c autolayout uilabel


【解决方案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 引擎并相应地调整标签和所有内容。

【讨论】:

  • 非常简单的答案!谢谢!!
猜你喜欢
  • 1970-01-01
  • 2016-08-01
  • 1970-01-01
  • 2014-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多