Tar*_*ark 11 cocoa-touch objective-c uiview ios autolayout
我正在尝试创建一个自定义容器视图,其中包含UIImageView和多行UILabel作为子视图.为了使视图与autolayout很好地协同工作,我将覆盖intrinsicContentSize,如下所示:
- (CGSize)intrinsicContentSize
{
return [self sizeThatFits:self.bounds.size];
}
Run Code Online (Sandbox Code Playgroud)
sizeThatFits计算的大小具有相同的宽度,并调整高度,以便不剪切标签和图像.这很好用,但我很惊讶地在文档中看到以下评论:
此内在大小必须独立于内容框架,因为例如,无法基于更改的高度动态地将更改的宽度传达给布局系统.
如果是这种情况,什么是自动布局方式根据其宽度和内容调整视图当前高度?我应该以不同的方式接近这个吗?
为了回答我自己的问题,似乎没有针对这种情况的自动布局合适的解决方案.寻找UILabel灵感,这里的问题已经通过添加属性来解决,该属性preferredMaxLayoutWidth然后可以在内在内容大小计算期间用作约束宽度.任何自定义视图都需要使用类似的东西.
| 归档时间: |
|
| 查看次数: |
10941 次 |
| 最近记录: |