滚动方向上的iOS7 UICollectionView水平方向为';行不通
同样的iOS6代码运行良好 由于某些原因,在更新到iOS7并使用此布局时滚动方向上的iOS7 UICollectionView水平方向为';行不通,ios,objective-c,uicollectionview,uicollectionviewlayout,Ios,Objective C,Uicollectionview,Uicollectionviewlayout,同样的iOS6代码运行良好 由于某些原因,在更新到iOS7并使用此布局时 UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init]; [flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal]; / CGSize s = CGSizeMake(self.collectionView.
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
[flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
/
CGSize s = CGSizeMake(self.collectionView.frame.size.height,self.collectionView.frame.size.height);
[flowLayout setItemSize:s];
未调用collectionview委托方法。我将滚动方向更改为垂直,调用所有代理,将collectionview的帧大小更改为更大,并调用代理方法。我怀疑collectionview由于某种原因在其内容视图内发生偏移,导致单元格在屏幕外,因为代理未被调用。当使框架变大时(在水平或垂直模式下),collectionview“填充”scrollview,并调用代理
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc]init];
[flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
[CollectionData setCollectionViewLayout:flowLayout];
正常大小的collectionview(不调用任何单元格和委托)
将框架放大50像素
CGRect r = CGRectInset(self.filmStripRect, 0, -50);
将显示单元格并调用代理
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc]init];
[flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
[CollectionData setCollectionViewLayout:flowLayout];
如果您使用的是故事板,请选择一个collectionview,转到属性检查器并将滚动方向设置为水平。您还应检查这些选项以使水平滚动正常工作:
我们应该创建一个新的
CollectionViewLayout
,并将其提交给collectionView
:
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
[flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
self.collectionView.collectionViewLayout = flowLayout;
你也在故事板中设置了滚动方向吗?没有使用故事板啊。您的cell.itemSize设置为与collectionview大小相同。也许就是这样?每个单元格的大小都与整个collectionview相同。通过制作CGSize 20,20进行测试。这与以编程方式更改现有流布局的滚动方向不起作用有关。创建一个新的解决方案对我来说是正确的。谢谢