我有一个带有自定义单元格的 UITableView
。每个单元格都有一个相当复杂的布局和许多 subview ,所有这些都具有事件操作:UIImageView
带有手势识别器,几个 UIButtons
带有一些操作,两个 UILabel
带有手势识别器。
所以我很感兴趣是否有一些优雅的方法来为他们处理目标 Action ?
现在我看到三种方式:
- 在
cellForRowAtIndexPath:
中使用 block ( - 创建自定义类
CellEventHandler
,将所有需要的依赖项( Controller 的导航 Controller
、数据数组等)传递给它,并将所有单元格的 View 操作选择器放在那里。 - 在TableViewController中写入所有选择器(默认方式)
BlocksKit
来救援)处理操作
但我并不满足于所有这些方式。有人可以描述一些有助于使 Controller 变薄并且易于维护的优雅方法吗?我确定此工作流应该存在某种模式。
最佳答案
使用委派。构建单元格时,将其委托(delegate)属性设置为符合委托(delegate)协议(protocol)的某个实例。触发操作时,只需将行为委托(delegate)给委托(delegate)人即可。
这样,您最终会得到定义明确的委托(delegate)协议(protocol)和封装在该类中的功能。委托(delegate)人是否将由您决定。 TableViewController 或自定义类。
关于ios - 处理 UITableViewcell subview 的 Action (事件)的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30444657/