滚动方向水平的iOS7 UICollectionView无法正常工作

时间:2013-09-23 14:46:50

标签: ios objective-c uicollectionview uicollectionviewlayout

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

enter image description here

将帧放大50像素

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

单元格并调用委托

enter image description here

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

我们应该创建一个新的CollectionViewLayout,并将其重新签名为collectionView

UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
[flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
self.collectionView.collectionViewLayout = flowLayout;

答案 2 :(得分:1)

UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc]init];
[flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
[CollectionData setCollectionViewLayout:flowLayout];

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