Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
滚动方向上的iOS7 UICollectionView水平方向为';行不通_Ios_Objective C_Uicollectionview_Uicollectionviewlayout - Fatal编程技术网

滚动方向上的iOS7 UICollectionView水平方向为';行不通

滚动方向上的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.

同样的iOS6代码运行良好

由于某些原因,在更新到iOS7并使用此布局时

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进行测试。这与以编程方式更改现有流布局的滚动方向不起作用有关。创建一个新的解决方案对我来说是正确的。谢谢