當UI設計圖上的給出按鈕尺寸較小,我們將對應的資源文件放入UIButton中,在真機調試中會發現難以點到按鈕。
這時候我們可以創建一個類繼承UIButton,重寫pointInside方法,使得按鈕事件響應不夠我們設置的最小區域的自動擴大到我們的設置的最小區域。
.h定義我們設置的最小響應區域大小
/**
* 事件響應最小區域大小(小于此區域則放大,否則保持原大小不變,不賦值保持原大小不變)
*/
@property (nonatomic, assign) CGSize eventFrame;
.m重寫pointInside方法
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent*)event{
CGRect bounds = self.bounds;
CGFloat widthExtra = MAX(self.eventFrame.width - bounds.size.width, 0);
CGFloat heightExtra = MAX(self.eventFrame.height - bounds.size.height, 0);
bounds = CGRectInset(bounds, -0.5 * widthExtra, -0.5 * heightExtra);
return CGRectContainsPoint(bounds, point);
}