为单元格的子视图实现不同的用户交互功能

Posted

技术标签:

【中文标题】为单元格的子视图实现不同的用户交互功能【英文标题】:Implementing different user interaction function for subviews of a cell 【发布时间】:2017-04-09 22:34:12 【问题描述】:

我有一个UICollectionView,它允许用户选择一个单元格,然后会出现视图“A”。我想知道这个单元格的子视图是否有可能,例如:UIlabelUIImageView 在单独选择它们时提供不同的功能。例如,如果选择了UIImageView,我想继续查看“B”而不是“A”。

我已经尝试为标签和图像实现UITapGestureRecognizer,但是,单元格的功能被否决并且结果视图仍然是“A”。有什么想法吗?

提前谢谢你。

【问题讨论】:

【参考方案1】:

如果您没有自定义单元格创建自定义单元格类,然后在自定义单元格中声明您的协议,则可以通过委托实现您想要实现的目标

【讨论】:

【参考方案2】:

我假设您必须禁用集合视图单元格的默认行为:

cell.selectionStyle = UITableViewCellSelectionStyle.none

但是,如果您设置了该选项并遇到重叠问题,请查看“UITapGestureRecognizer”的“cancelTouchesInView”属性。基本上,通过将其设置为 false,您可以让孩子也接收触摸动作。

此外,不要忘记每个手势识别器都应该有自己的方法,以便您能够进入两个不同的位置。

【讨论】:

以上是关于为单元格的子视图实现不同的用户交互功能的主要内容,如果未能解决你的问题,请参考以下文章

Ag-grid 企业:通过用户交互取消选择范围选择中的单元格的可能性

UICollectionView 单元格用户交互已禁用

触发 UITapGesture 时从单元格的子视图中获取单元格的引用

点击单元格后不同的 UITableViewCell 子视图布局

是否在表格视图单元格上选择没有响应

iOS10 UI教程禁用视图与用户的交互