objective-c - 忽略了在 ios 8 上工作的 iOs 7 的约束

标签 objective-c ios7 uicollectionview autolayout uicollectionviewcell

我已经为这个问题苦苦挣扎了几个小时。

我正在使用一个简单的 CollectionView,它有一个带有自定义 nib 文件的自定义单元格。 我还通过这样做设置单元格的大小: - (CGSize)collectionView:(UICollectionView <em>)collectionView layout:(UICollectionViewLayout</em>)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { return collectionView.frame.size; } 我只是想将单元格中的 subview 居中,到目前为止它在 iOs8 中运行良好, View 居中,我什至调用 reloadDataviewWillTransitionToSize:因此单元格大小会在旋转时更新。

iOs8 中的结果 The Result in 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/

相关文章:

objective-c - initWithNibName VS viewDidLoad

iOS7 崩溃 - [__NSPlaceholderDictionary initWithObjects

ios - 如何使用 UIImagePickerController 相机图像来更新我的 UICollectionViewCell?

ios - 如何使用 UICollectionViewController 上方的 UIToolbar?

objective-c - 如何向 UIScrollView 添加 View 并使其与 UIPageControl 保持同步?

ios - 以编程方式打开 ViewController

ios facebook sdk 4.0 登录错误代码 304

ios - 如何使用文本字段处理 TableView 单元格

ios - 没有出现iOS 7 Google AdMob

ios - 禁用滚动时如何确定 UICollectionView 宽度