2

Xcode Interface Builder 快把我逼疯了,我一天中的大部分时间都在谷歌上搜索解决方案。

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

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

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

这是一个已知问题还是有什么方法可以调试约束?

谢谢

4

2 回答 2

1

我终于从http://www.nomtek.com/adjusting-your-app-to-ios-8/找到了问题的完整解决方案

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

- (void)awakeFromNib {

    [super awakeFromNib];

    self.contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
}

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

于 2014-10-19T10:53:06.610 回答
0

我取得了部分进展。

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

如果我放弃该方法并在 Interface Builder 中设置 CollectionView 的 FlowLayout 的更大单元格大小,它会按预期工作。这意味着约束和子视图大小在编译时更新。

我仍然很想知道如何在使用sizeForItemAtIndexPath. 有什么建议么?

于 2014-10-17T11:25:24.693 回答