UICollectionView单元格选择问题 - 无法选择加载视图时可见区域上的单元格

时间:2016-03-27 16:08:33

标签: ios uicollectionview selection uicollectionviewcell

我正在尝试使用UICollectionView为我的应用程序开发日历。

ScreenShot of my day calendar.The view contain 00:00 to 24:00 is developed by collection view. In the bottom is a tableview

我使用自定义的UICollectioViewLayout来显示每个单元格,它工作正常!每个细胞都显示在正确的位置。

为了显示每个事件的更多信息,我实现[didSelectItemAtIndexPath]方法和[prepareForSegue]方法一起触发弹出窗口视图,以便在用户触摸单元格时显示数据。

但是,只能在第一次加载集合视图时在可见区域中不显示的单元格。

我的意思是collectionview的内容大小为[1560,340],collectionview的帧大小为[560,340]。所以这个集合视图可以垂直滚动。我发现如果一个细胞的位置高于[560,340](例如[30,340]),则不能选择这个细胞。如果单元格的位置低于[560,340],用户触摸这些单元格可以触发didSelectItemAtIndexPath方法并显示popoverview。

我完全不知道出了什么问题。有没有人遇到类似的问题?

1 个答案:

答案 0 :(得分:0)

我发现问题可能来自zIndex。

在我的原创设计中。时间标签和两条垂直线(UILabel的borderLine)由SupplementaryView显示。这些事件由UICollectionViewCell显示。我发现如果删除SupplementaryView,可以正确选择所有单元格。所以我接下来尝试通过UICollectionViewCell显示所有内容(事件,行,时间)。但是,选择问题仍然存在。最后,我发现有一个名为zIndex的参数。在我将显示事件的单元格的zIndex设置为1而其他单元格设置为0之后,选择问题就消失了。一切都很完美。

虽然我没有尝试,但我认为,在我的原始设计中,如果我将SupplementaryView的zIndex设置为0可以解决选择问题。