擴大按鈕(UIButton)點擊范圍

重寫一個Button類,這個類繼承與UIButton,重寫 - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent*)event,方法就可以擴大按鈕的點擊區域.修改bounds的值就可以滿足我的需求,詳細實現見下面的代碼.

– (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent)event
{
//通過修改bounds 的x,y 值就可以只向X 軸或者Y軸的某一個方向擴展
//當bounds 的X 為負,Y 為0,就只向X的正方向擴展點擊區域,反之亦然
//當bounds 的Y 為負,X 為0,就只向Y的正方向擴展點擊區域,反之亦然
//當bounds 的Y 為0,X 為0,widthDelta,heightDelta來控制擴大的點擊區域 ,這個是同時向X 軸正負方向或者同時向Y軸的正負方向
CGRect bounds =CGRectMake(0, -70, self.bounds.size.width, self.size.height);
//90 是希望的X 軸或者Y軸方向的點擊區域的寬度或者高度
CGFloat widthDelta =90- bounds.size.width;
CGFloat heightDelta =90- bounds.size.height;
bounds =CGRectInset(bounds, 0, -0.5
heightDelta);//注意這里是負數,擴大了之前的bounds的范圍
return CGRectContainsPoint(bounds, point);
},
github地址

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容