目标效果
当前需求如下图所示, 按钮Button如红色区域的大小, 用户交互体验更好的考量下我们需要扩大点击范围为橙色区域的大小.
方案
一 . 自定义UIButton
如果我们使用的继承自UIButton
的自定义Button类, 我们可以重写UIButton
的响应链方法- (BOOL)pointWithEvent:(UITouchEvent *)event;
修改UIButton
可以响应的范围.
二 . UIButton增加Category
给UIButton
添加响应区域修改的方法, 使用Runtime
增加关联对象, 修改响应区域, 比较点击事件的Point是否在本区域内, 能否响应该事件.
注: 响应链更多信息参见: “事件传递过程”(响应者链条)与“hitTest:方法底层实现”