【问题标题】:ios storyboard duplicated CollectionView cellForItemAtIndexPath not calledios故事板重复CollectionView cellForItemAtIndexPath未调用
【发布时间】:2014-08-04 08:32:34
【问题描述】:

我想做的事

在情节提要中将一个 CollectionView 从 ControllerA 复制到 ControllerB

我做过的事情

来自 ControllerA 的复制(CMD+D)CollectionView(工作正常) 拖放到ControllerB

retarget(ctrl + drag) 数据源并委托给 ControllerB

应该是

重复的 collectionView 应该像在 ControllerA 中一样正常工作

但结果是

numberOfSectionsInCollectionViewnumberOfItemsInSection 被调用 但是cellForItemAtIndexPath没有被调用

编辑 1

问题看起来与 CollectionView 的帧大小有关

CollectionView: size(320,50) 流式布局,水平滚动

CollectionViewCell:大小(50,50)

如果我将 CollectionView 的高度拖到 65,它会发出警告:(cellForItemAtIndexPath 已调用)

未定义 UICollectionViewFlowLayout 的行为,因为: 项目高度必须小于 UICollectionView 的高度减去部分插入的顶部和底部值。

如果 CollectionView 高度 >= 114,则在没有警告的情况下工作。

具有相同参数 size(320,50) 的 ControllerA 可以工作。不知道为什么

编辑 2

如果我使用所有相同的设置复制 CollectionView 并重新定位到相同的委托。重复的不能按预期工作。 原来的工作!奇怪!!

【问题讨论】:

  • 再次删除连接并重新连接,并检查您为集合视图提供的类类型。

标签: ios storyboard collectionview


【解决方案1】:

升级到 xcode 6 beta 5 后,我注意到单元格不在 CollectionView 的可见区域中

解决方案

在父视图控制器属性检查器中关闭Adjust Scroll View Insets 选项 或将此代码添加到父视图控制器 viewDidLoad 方法: self.automaticallyAdjustsScrollViewInsets = NO;

参考:UICollectionView adds top margin

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    相关资源
    最近更新 更多