UICollectionView在iOS7上工作,但不在iOS6上
我的UICollectionView
单元格不会在iOS6上显示,因为我的委托方法cellForItemAtIndexPath
未被调用。我怀疑,因为这一警告的:UICollectionView在iOS7上工作,但不在iOS6上
the behavior of the UICollectionViewFlowLayout is not defined because:
the item height must be less that the height of the `UICollectionView`
minus the section inset's top and bottom values.
我没有得到iOS7警告,所有的细胞显示正常也有。
我已将collectionView
框架设置为.xib
中的高度270,并且没有定义任何插槽。 我在.xib
中将我的细胞高度设置为270。 我可以打印出在运行时我collectionView
框架和它的271
而且,我collectionview
实际上是一个自定义tableview
细胞内。
任何想法? 谢谢!
这个固定我的问题!在我的.xib
中,将我的收藏视图大小单元格大小设置为较小的值。
我的设置是,我有这个collectionview
定制tableview
细胞内和 我回来我tableview
细胞的高度编程(取决于内容)。所以可能是我的警告与我的collectionview
不适合tableview
单元格有关。因此将初始collectionview
设置为较小的值可以修复它。
我错误地认为问题出在我的collectionview
及其colletionview
单元格上。
也许吧?
我发现我不得不在viewWillLayoutSubviews中手动设置self.collectionView.collectionViewLayout.itemSize
。
- (void)viewWillLayoutSubviews {
self.collectionView.collectionViewLayout.itemSize = CGRectMake(...);
}
另一种可能产生同样的伎俩将是实现该方法collectionView:layout:sizeForItemAtIndexPath:
thx为问题编辑。我的collectionview实际上是一个自定义tableview单元格中的一个组件。有点混淆在哪里放置这行代码? –
VC的viewWillLayout当主框架发生变化时(初始布局,旋转等),调用子视图。这只是你重写的一种方法(默认不做任何事)。我猜你对你的情况不会有太大的帮助。在编辑问题上,我修正了“那”v“而不是”错字,然后我在另一个问题上注意到它实际上是苹果的错字! – mackworth
哈哈是的,它总是让我看到这个错字!看到我的答案btw。 –
self.automaticallyAdjustsScrollViewInsets = NO
实际上做了诡计。它也快速解决了我的问题,水平流布局的单元格的顶部为-32(???),并且不适合集合视图。
我有同样的问题,在我的情况collectionCell的故事板的尺寸为96×96,也下-(CGSize)collectionView:layout:sizeForItemAtIndexPath:
溶液去除此委托:
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
{
UIEdgeInsets insets = {.left = 10, .right = 10, .top = 5, .bottom = 5};
return insets;
}
顺便说这是在ios7下,它已经很晚了,但希望这会帮助一些..干杯..
集:
self.itemSize = CGSizeMake(1, 1);
真不明白为什么这个工作,但它只是清除了UICollectionViewFlowLayout警告我已经调试在过去的两小时。谢谢! – djibouti33
它实际上工作正常在ios7上,所以不幸的是,这个属性不会帮助我在这种情况下,因为我看到了ios6上的问题。 –