項目開發(fā)過程中有很多時候有要求按鈕的大小不改變,但是響應(yīng)的區(qū)域要擴(kuò)大。一直以來用的方法就是在按鈕上層加一個View用這個View來接收和執(zhí)行按鈕響應(yīng)時間猛频,前幾天被告知還有另外一種方法所以就去找了下發(fā)現(xiàn)了下面的方法:
UIView的方法列表中發(fā)現(xiàn)了-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
這個方法可以修改接收事件的View爽航。
point:當(dāng)前點擊的點传藏,注意:點是相對于當(dāng)前視圖的來說的點
event:當(dāng)前的事件
返回一個接收事件的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;
}```