应用场景:
当某个Button设计尺寸很小,导致页面很不好点,因此在不改变设计尺寸的情况下对按钮的响应范围进行适当扩大
原理:
1.继承UIButon,重写下面方法
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
该方法返回一个布尔值,YES说明点击事件在按钮frame中,NO说明点击事件不在按钮的frame中,因此将按钮frame周围等距离的区域内的点击事件都返回YES,便达到了扩大响应范围的目的
.h 和 .m代码
屏幕快照 2019-01-10 上午9.45.17.png屏幕快照 2019-01-10 上午9.44.57.png
调用方式
按钮的size是(20,20),touchSize我们设置为(40,40),结果是按钮上下左右各放大10个点.
屏幕快照 2019-01-10 上午9.53.01.png
说明:
CGRectInset(CGRect rect, CGFloat dx, CGFloat dy)中的三个参数
rect:待操作的CGRect;
dx:为正数时,向右平移dx,宽度缩小2dx。为负数时,向左平移dx,宽度增大2dx;
dy:为正数是,向下平移dy,高度缩小2dy。为负数是,向上平移dy,高度增大2dy。
CGRectContainsPoint(CGRect rect, CGPoint point)判断手势点击的坐标point(x,y)是否落在rect(x,y,w,h)内.在区域内返回YES,不在返回NO.
屏幕快照 2019-01-10 上午9.30.44.png
网友评论