iOS扩大UIButton按钮的点击范围
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS扩大UIButton按钮的点击范围相关的知识,希望对你有一定的参考价值。
参考技术A 有时候会遇到按钮本身较小,不好点击的情况。这个时候可能不方便扩大按钮,就可以使用这个方法来扩大点击范围但是不需要扩大按钮本身。利用了UIButton点击响应原理,UIButton在点击后,会调用hittest方法,来检查点击是否在范围内,如果不在则交给父view继续hittest。这个方法就是利用重写了hittest方法,来扩大点击范围。
创建一个UIButton的category。定义一个方法,传入上,左,下,右四个参数。每个参数代表每个方向上扩大的距离。
因为category无法增加属性,就利用runtime来给UIButton添加四个属性。
定义四个属性的key。
实现.h定义的方法,给四个属性赋值
重写hittest方法,如果点击的位置在扩大之后的范围内,就直接返回,否则就还是交给父类处理。
传入上左下右需要扩大的距离。
如果为负数则是缩小点击范围。
需要注意的是,扩大的范围不能超过父View的范围,超过了父View的范围点击就不能生效了。
iOS之扩大UIButton(UIView)的点击范围
参考技术A UI给的图有时候很小,或者有个需求需要我们扩大button的点击区域我们一般的操作是在button 上添加一个view 增加点击事件,但是我们还有其他更方便的方法去扩大button 的点击区域。
怎样来实现这个功能呢?又有多少种方式可以实现呢?下面一一来讲。
当用户点击屏幕后:
如下图所示:
然而事件的响应链条是事件链条的逆向,根据视图层级的添加顺序从后往前的
继承与UIButton,重写下面的方法:
其实我们上面所做的变化其实如果仔细看点击区域还是个矩形,如果需要我们将点击区域规定在圆形范围 内,我们可以这样做:
以上是关于iOS扩大UIButton按钮的点击范围的主要内容,如果未能解决你的问题,请参考以下文章