2

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(不调用任何单元格和委托)

在此处输入图像描述

将框架放大 50 像素

CGRect r = CGRectInset(self.filmStripRect, 0, -50);

单元格出现并调用代表

在此处输入图像描述

4

3 回答 3

3

您还应该检查那些以使水平滚动工作:

于 2016-12-22T19:18:05.937 回答
2

我们应该创建一个新的CollectionViewLayout,并将其辞职给collectionView

UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
[flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
self.collectionView.collectionViewLayout = flowLayout;
于 2017-05-05T03:06:53.923 回答
1
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc]init];
[flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
[CollectionData setCollectionViewLayout:flowLayout];

如果您使用故事板,请选择一个集合视图,转到属性检查器并设置滚动方向水平。

于 2016-04-04T06:05:51.337 回答