3

我一直在努力解决这个问题几个小时。忽略iOs 8上工作的约束ios 8

我正在使用一个简单的CollectionView,它具有自定义单元格文件的自定义单元格。 我也做这个设置单元格的大小: - (CGSize)collectionView:(UICollectionView )collectionView layout:(UICollectionViewLayout)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { return collectionView.frame.size; } 我只是想在单元格中居中子视图,到目前为止,它在iOS8上工作的伟大,视图为中心,我甚至在viewWillTransitionToSize:调用reloadData所以旋转时更新单元大小。

在iOS8上 The Result in iOs8

但在IOS 7似乎我添加到视图中心约束完全忽略了结果。
事实上,在collectionView:sizeForItemAtIndexPath:方法中,一旦单元格大小发生更改,它就像他不听约束一样。

给予这种不愉快的结果:

我是否正确设置限制?我是否在某处忘记了layoutIfNeededneedsUpdateConstraints之类的内容?

在这里你可以下载一个简单的小项目,有我的问题。 http://goo.gl/mBmI1H

谢谢你的帮助。

回答

3

我回答自己,

其实我在界面生成器拆除中间限制和增加他们在像这样的代码解决了这个问题:

[self addConstraint: 
[NSLayoutConstraint constraintWithItem:self 
           attribute:NSLayoutAttributeCenterX 
           relatedBy:0 
           toItem:self.connectedContainer 
           attribute:NSLayoutAttributeCenterX 
          multiplier:1 
           constant:0]]; 

我不明白-1,因为这是一个真正的问题,我正在使用Xcode版本6.0(6A313)。

我希望这会帮助有人遇到同样的问题。

+0

哇!在收集单元中与IB中心约束挣扎了很长时间,并且这个答案解决了它,谢谢分享:) – 2015-03-13 15:38:27