UIButton设置点击范围(扩大/缩小)

目标效果

当前需求如下图所示, 按钮Button如红色区域的大小, 用户交互体验更好的考量下我们需要扩大点击范围为橙色区域的大小.


image.png

方案

一 . 自定义UIButton
如果我们使用的继承自UIButton的自定义Button类, 我们可以重写UIButton的响应链方法- (BOOL)pointWithEvent:(UITouchEvent *)event;
修改UIButton可以响应的范围.

RTButton.jpeg

二 . UIButton增加Category
UIButton添加响应区域修改的方法, 使用Runtime增加关联对象, 修改响应区域, 比较点击事件的Point是否在本区域内, 能否响应该事件.

enlarge.jpeg

注: 响应链更多信息参见: “事件传递过程”(响应者链条)与“hitTest:方法底层实现”

你可能感兴趣的:(UIButton设置点击范围(扩大/缩小))