首页 > 解决方案 > 如何在集合视图单元之外稍微检测到水龙头

问题描述

我正在构建一个集合视图,其中有多个按钮彼此相隔几个点。布局类似于键盘的布局。

<a href="https://i.stack.imgur.com/MEUac.png" rel="nofollow noreferrer">在此处输入图像描述

我没有使用给定的协议存根 (didSelectItemAt),而是在 cellForItemAt 方法中为每个单元分配了一个手势识别器。手势是一个 UITapGestureRecognizer:

  let touchUpGesture = UITapGestureRecognizer { recognizer in
           print(indexPath.row)
        }
        cell.addGestureRecognizer(touchUpGesture)

显然,这个手势只在单元格内有效。但实际上用户可能会犯错并点击单元格外的空间,所以我想扩大手势的接受范围:

这是检测到点击手势的当前范围: 在此处输入图像描述

我也希望这个空间来检测水龙头:

在此处输入图像描述

我希望黄色区域中的水龙头与左侧按钮相关联,而粉色区域中的水龙头与粉色区域相关联:

在此处输入图像描述

如果由我决定,我会让单元格稍大一些,并在其中放置另一个视图以创建按钮的错觉。这样我就可以实现我所需要的,但这完全是一项繁重的工作。我坚信有更好的方法来做我需要做的事情,但我似乎找不到任何东西,有没有更简单和更清洁的方法来实现这一目标?

标签: iosswiftuiviewuicollectionviewuigesturerecognizer

解决方案


推荐阅读