collectionView:didSelectItemAtIndexPath:没有被调用
Posted
技术标签:
【中文标题】collectionView:didSelectItemAtIndexPath:没有被调用【英文标题】:collectionView: didSelectItemAtIndexPath: does not get called 【发布时间】:2014-05-15 20:37:28 【问题描述】:我有一个UITableview
。 UITableViewCell's
之一是 UICollectionview
,实例名称为“amenityView”。 UICollectionViewDelegate
和UICollectionViewDataSource
在storyboard
中设置如下所示。调用以下方法并按预期填充数据。
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
- (UICollectionViewCell *)collectionView:(UICollectionView *)collection cellForItemAtIndexPath:(NSIndexPath *)indexPath
但是,当我选择 UICollectionView
中包含的 UICollectionViewCell
时,没有调用以下方法。我错过了什么?
-(void) collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
-(void) collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath
更新:
在此方法中返回 YES collectionView:shouldSelectItemAtIndexPath:
将调用以下两个方法。至少那是我所缺少的。希望这会帮助一些身体...
【问题讨论】:
是".allowsSelection
" 你的收藏视图设置为YES?
@MichaelDautermann。感谢您的答复。 “.allowsSelection”设置为“YES”。
它所在的表格视图单元格是否允许用户交互或选择单元格本身?
UICollectionView
小于表格视图单元格。当我选择UICollectionView
之外但在表格视图单元格内的区域时,方法didSelectRowAtIndexPath
被调用。所以是的,单元格的选择是有效的。
【参考方案1】:
表视图的 didSelectRowAtIndexPath 是否被调用?如果是这样,表格视图可能会拦截触摸而不是将它们传递给内部的集合视图。我从未完成您尝试执行的解决方案,但集合视图位于滚动视图内,并且以有意义的方式将触摸信息传递给集合视图可能并不容易,因此您可能需要禁用点击表格视图单元格,以便集合视图响应触摸。
【讨论】:
以上是关于collectionView:didSelectItemAtIndexPath:没有被调用的主要内容,如果未能解决你的问题,请参考以下文章
为啥 CollectionView 单元格内部其他 collectionView 的大小错误?
CollectionView 单元格出现在 collectionView 之外。
CollectionView 里面的 CollectionView | CollectionViewCell 自动布局错误
当collectionView折叠时隐藏collectionView内容