擴大UIButton點擊區域

當設計圖上的給出按鈕尺寸較小,我們將對應的資源文件放入UIButton中,比如只有12x12pt,在真機調試中會發現難以點到按鈕。
這時候可以通過繼承UIButton,重寫pointInside方法,使得按鈕熱區不夠44×44pt的自動縮放到44×44pt

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent*)event
{
    CGRect bounds = self.bounds;
    //若原熱區小于44x44,則放大熱區,否則保持原大小不變
 CGFloat widthDelta = MAX(44.0 - bounds.size.width, 0);
 CGFloat heightDelta = MAX(44.0 - bounds.size.height, 0);
 bounds = CGRectInset(bounds, -0.5 * widthDelta, -0.5 * heightDelta);
 return CGRectContainsPoint(bounds, point);
}

問題解決。

原文網址:http://itony.me/129.html

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

推薦閱讀更多精彩內容

  • 當UI設計圖上的給出按鈕尺寸較小,我們將對應的資源文件放入UIButton中,在真機調試中會發現難以點到按鈕。這時...
    fulen閱讀 1,662評論 0 1
  • 問題 一般來說按鈕的點擊范圍和按鈕的大小是相等的,但是如果按鈕很小,就會造成難以點擊的情況,甚至有的時候按鈕周圍還...
    ZhangCc_閱讀 868評論 0 3
  • 問題 在開發過程中經常會遇到設計給出的button尺寸偏小的情況.這種UIButton在使用中會非常難點擊,極大降...
    走進科學閱讀 2,533評論 0 4
  • 因為要做一個地圖操作的項目,需要用到這個地圖庫,但是查詢官方API麻煩,而且這個地圖框架的API做的用起來確實太麻...
    虛幻的銹色閱讀 34,024評論 1 15
  • Apple的iOS人機交互設計指南中指出,按鈕點擊熱區應不小于44x44pt,否則這個按鈕就會讓用戶覺得“很難用”...
    歌白尼閱讀 2,145評論 2 1