iOS-擴大UIButton點擊范圍

重寫一個Button類,這個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);
}

鏈接:http://www.lxweimin.com/p/ce2d3191224f

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

推薦閱讀更多精彩內容