检测自定义 table 单元格内多个 UI 视图的 tap/touch 的理想方法是什么?

What's the ideal way to detect tap/touch for multiple UI views inside a custom table cell?

我有一个带有自定义单元格的 table 视图,每个单元格包含多个 UI 视图。

当用户点击单元格内的 UI 视图时,应用会根据点击的 UI 视图做出响应。例如,有三行,每行有不同数量的UI视图:(这些视图可能是图像,标签组成不同的布局)

row1 - view1  view2  view3
row2 - view4  view5
row3 - view6  view7  view8  view9

如果用户点击 row3/view8,应用将检测到点击并知道 view8 被点击。

目前我有两个实现方向:

(1) 将 UITapGestureRecognizer 添加到每个 UI 视图

(2) 检测 table 视图上的触摸,并通过计算哪个 UI 视图包含触摸点来决定点击哪个 UI 可见单元格视图,例如 the answer of this question.

我想知道理想的方式是什么?还有其他更好的方法或建议吗?

您可以为此使用 UICollectionView。参考

我会允许视图直接检测和处理点击。对我来说似乎最简单,而且这更符合 UIKit 的设计使用方式。 UITapGestureRecognizer 似乎很适合这个。