项目开发过程中有很多时候有要求按钮的大小不改变,但是响应的区域要扩大。一直以来用的方法就是在按钮上层加一个View用这个View来接收和执行按钮响应时间,前几天被告知还有另外一种方法所以就去找了下发现了下面的方法:
UIView的方法列表中发现了-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
这个方法可以修改接收事件的View。
point:当前点击的点,注意:点是相对于当前视图的来说的点
event:当前的事件
返回一个接收事件的View
具体代码如下:
-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
CGRect hitRect = CGRectMake(-20, -20, self.frame.size.width + 40, self.frame.size.height + 40);
if (CGRectContainsPoint(hitRect, point)) {
return self;
}
return nil;
}```