Button的点击范围设置


因为Apple 规定 点击范围最好不要小于 44.0 point 

首先,我们得继承(或者扩展类)一个UIButton,然后重写 - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event 这个方法 


自定义:Button的点击范围   

-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event

{

//这种是 自己定义button的具体范围

CGRect bounds =self.bounds;

CGFloat widthDelta =44.0- bounds.size.width;

CGFloat heightDelta =44.0- bounds.size.height;

/*  1.注意这里是负数,扩大了之前的bounds的范围

*  2.通过第二个参数 dx和第三个参数 dy 重置第一个参数rect 作为结果返回。

*  重置的方式为,首先将rect 的坐标(origin)按照(dx,dy) 进行平移,然后将rect的大小(size) 宽度缩小2倍的dx,高度缩小2倍的dy;

 *   所以我们这里设置的范围就是44.0 *44.0 如果想设置大点就把上面的宽高44.0  改一下

*/

bounds =CGRectInset(bounds, -0.5* widthDelta, -0.5* heightDelta);

//CGRectContainsPoint函数:判断给定的点是否被一个CGRect包含

return CGRectContainsPoint(bounds, point);

}


-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event

{

//这种是范围向外扩展 2*10  如果是正的 就是缩小 2*10

CGRect bounds =self.bounds;

bounds =CGRectInset(bounds,-10 ,-10 );

return CGRectContainsPoint(bounds, point);

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容