Xcode6 Interface Builder约束不会拉伸子视图

时间:2014-10-16 11:15:08

标签: ios xcode interface-builder adaptive-ui

Xcode Interface Builder让我疯狂,我花了大部分时间在Google上搜索解决方案。

我有一个包含UIImageView的CollectionViewCell的故事板。 CollectionViewCell大小为125 x 125,并检查Autoresize子视图。

UIImageView对其超级视图(前导,尾随,顶部,底部)有4个约束,全部设置为0.这应该确保UIImageView的大小可以填充超级视图。当CollectionViewCell缩小到较小的尺寸时,UIImageView的大小正确,但当CollectionViewCell拉伸到更大的尺寸时,它不会工作。

编辑:我使用UILabel子视图尝试了相同的操作,同样的事情发生了。

这是一个已知问题还是有任何方法来调试约束?

由于

2 个答案:

答案 0 :(得分:1)

我终于从http://www.nomtek.com/adjusting-your-app-to-ios-8/

找到了问题的完整解决方案

首先,我必须确保我的CollectionViewCell在Interface Builder中选中了Autoresize子视图,然后我必须在ConnectionViewCell子类上添加以下awakeFromNib方法。

- (void)awakeFromNib { [super awakeFromNib]; self.contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; }

使用sizeForItemAtIndexPath,即使使用动态单元格大小调整,我的单元格(UIImageView和UILabel)的内容也会正确拉伸。

答案 1 :(得分:0)

我已经取得了部分进展。

我正在使用sizeForItemAtIndexPath动态设置单元格大小。

如果我删除该方法并在Interface Builder中设置CollectionView的FlowLayout的较大Cell Size,它将按预期工作。这意味着约束和子视图大小在编译时更新。

我仍然想知道在使用sizeForItemAtIndexPath时如何动态更新约束和子视图大小。有什么建议吗?