UILabel 宽度和自动布局的困难
Difficulty with UILabel width and Autolayout
我觉得这是一个非常简单的问题 - 我到处搜索答案,但一无所获。
在我的 UITableViewController 中,我设置了自定义 UITableViewCell 的 UILabel 的文本(在情节提要中制作)。我希望标签的宽度是文本的宽度(这并不难计算)加上一个大约 20 的常数。我看不到找到设置它的方法?
我应该只以编程方式创建 UILabel 吗? autolayout 不能帮我解决这个问题吗?
在界面生成器中,这可能是不可能的,正如您所描述的那样。您可以做的一件事是为标签的固有内容大小指定一个不同的值。创建一个迷你 UILabel 子类:
@interface Plus20UILabel : UILabel
@end
@implementation Plus20UILabel
-(CGSize)intrinsicContentSize{
CGSize contentSize = [super intrinsicContentSize];
return CGSizeMake(contentSize.width + 20, contentSize.height);
}
@end
然后在IB中指定标签为Plus20UILabel。这会将新值提供给 AutoLayout 引擎并相应地调整标签和所有内容。
我觉得这是一个非常简单的问题 - 我到处搜索答案,但一无所获。 在我的 UITableViewController 中,我设置了自定义 UITableViewCell 的 UILabel 的文本(在情节提要中制作)。我希望标签的宽度是文本的宽度(这并不难计算)加上一个大约 20 的常数。我看不到找到设置它的方法? 我应该只以编程方式创建 UILabel 吗? autolayout 不能帮我解决这个问题吗?
在界面生成器中,这可能是不可能的,正如您所描述的那样。您可以做的一件事是为标签的固有内容大小指定一个不同的值。创建一个迷你 UILabel 子类:
@interface Plus20UILabel : UILabel
@end
@implementation Plus20UILabel
-(CGSize)intrinsicContentSize{
CGSize contentSize = [super intrinsicContentSize];
return CGSizeMake(contentSize.width + 20, contentSize.height);
}
@end
然后在IB中指定标签为Plus20UILabel。这会将新值提供给 AutoLayout 引擎并相应地调整标签和所有内容。