Xcode Interface Builder让我疯狂,我花了大部分时间在Google上搜索解决方案。
我有一个包含UIImageView的CollectionViewCell的故事板。 CollectionViewCell大小为125 x 125,并检查Autoresize子视图。
UIImageView对其超级视图(前导,尾随,顶部,底部)有4个约束,全部设置为0.这应该确保UIImageView的大小可以填充超级视图。当CollectionViewCell缩小到较小的尺寸时,UIImageView的大小正确,但当CollectionViewCell拉伸到更大的尺寸时,它不会工作。
编辑:我使用UILabel子视图尝试了相同的操作,同样的事情发生了。这是一个已知问题还是有任何方法来调试约束?
由于
答案 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
时如何动态更新约束和子视图大小。有什么建议吗?