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);

}

你可能感兴趣的:(Button的点击范围设置)