【发布时间】:2013-10-03 23:53:54
【问题描述】:
我正在尝试创建一个自定义容器视图,其中包含一个 UIImageView 和一个多行 UILabel 作为子视图。为了使视图与自动布局很好地配合,我将覆盖 intrinsicContentSize,如下所示:
- (CGSize)intrinsicContentSize
{
return [self sizeThatFits:self.bounds.size];
}
sizeThatFits中计算出的大小,宽度相同,并调整高度,使标签和图片不被剪裁。这很好用,但我很惊讶在文档中看到以下评论:
这个固有尺寸必须独立于内容框架,因为没有办法根据改变的高度动态地将改变的宽度传达给布局系统。
如果是这样,根据宽度和内容调整视图当前高度的自动布局方式是什么?我应该以不同的方式解决这个问题吗?
【问题讨论】:
-
如果要避免内容被剪裁,必须提高容器视图的抗压缩优先级。
-
抗压缩是视图抵抗被制作成小于其固有内容大小的优先级。如果内在内容大小不正确,那么这将没有多大用处。
标签: ios objective-c cocoa-touch uiview autolayout