我已经为这个问题苦苦挣扎了几个小时。
我正在使用一个简单的 CollectionView,它有一个带有自定义 nib 文件的自定义单元格。
我还通过这样做设置单元格的大小:
- (CGSize)collectionView:(UICollectionView <em>)collectionView layout:(UICollectionViewLayout</em>)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
return collectionView.frame.size;
}
我只是想将单元格中的 subview 居中,到目前为止它在 iOs8 中运行良好, View 居中,我什至调用 reloadData
在viewWillTransitionToSize:
因此单元格大小会在旋转时更新。
iOs8 中的结果
但在 iOs 7 中,我添加到 View 中的中心约束似乎完全被忽略了。
实际上,在 collectionView:sizeForItemAtIndexPath:
中,一旦更改单元格大小,他就好像不听约束一样。方法。
给出这个不愉快的结果:
我是否正确设置了约束条件?我忘了像layoutIfNeeded
这样的东西吗?或 needsUpdateConstraints
某处?
在这里你可以下载一个有我的问题的简单的小项目。 http://goo.gl/mBmI1H
感谢您的帮助。
最佳答案
我自己回答,
实际上我通过删除界面生成器中的中心约束并将它们添加到如下代码中来解决问题:
[self addConstraint:
[NSLayoutConstraint constraintWithItem:self
attribute:NSLayoutAttributeCenterX
relatedBy:0
toItem:self.connectedContainer
attribute:NSLayoutAttributeCenterX
multiplier:1
constant:0]];
我不明白 -1 因为这是一个真正的问题,我使用的是 Xcode 版本 6.0 (6A313)。
我希望这能帮助遇到同样问题的人。
关于objective-c - 忽略了在 ios 8 上工作的 iOs 7 的约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26220109/