我有一个基于集合视图的布局,具有不同的单元大小,具体取决于内容。普通单元格为200x200像素,但如果没有内容,我会显示与集合视图本身尺寸相同的单元格。在iOS7上的UICollectionViewCell子类中未约束的约束条件
我用
- (CGSize)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout *)collectionViewLayout
sizeForItemAtIndexPath:(NSIndexPath *)indexPath
计算正确的尺寸。
如何,我的细胞子视图不会更新它的约束。这个单元格非常简单,只是一个应该在单元格超视图中居中的UILabel。我有一个水平和垂直的中心约束(也试图将每个边钉在超视图上)。结果是子视图的大小和位置与Interface Builder(Storyboard)中输入的大小和位置相同。
我已经设置了单元格和标签的背景颜色,可以看到单元格获得了正确的尺寸,但标签没有。
该问题只存在于iOS7中,并且与iOS8中的情况一样。
请帮忙!
这是一个有趣的问题。顺便说一下,我最近遇到了类似的问题,但相反的方式:集合视图单元格内的子视图在iOS7中调整父视图后正确对齐其约束,而这在iOS8中并未发生:在后一种情况下,作为walkaround我使用了-layoutSubiews方法来修复iOS8问题。对于这两个iOS版本你会遇到同样的问题感到好奇。我还不知道答案,没有时间深入研究......我不得不快速发布iOS8更新! – viggio24 2014-09-23 19:16:02
我在Xcode 6中作为iOS8项目开始了我的项目,之后又降低了基本目标版本。也许这种行为取决于该项目的创建版本。 – 2014-09-23 19:23:13
你是如何在你的项目的-layoutSubviews中修复它的? – 2014-09-23 19:24:08