Apple的iOS人机交互设计指南中指出,按钮点击热区应不小于44x44pt,否则这个按钮就会让用户觉得“很难用”,因为明明点击上去了,却没有任何响应
为了发大按钮的可触范围,需要重写UIButton的- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event;方法,改变按钮的可触范围。
1.使按钮的可触范围改变至44*44
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{
CGRect bounds = self.bounds;
CGFloat width = 44.0f - bounds.size.width;
CGFloat height = 44.0f - bounds.size.height;
bounds = CGRectInset(bounds, - 0.5 * width, - 0.5 * height);//改变bounds的范围
return CGRectContainsPoint(bounds, point);//如果point 在 bounds 内,返回YES,否则返回NO
}