2014-02-13 26 views
3

因此,UIButtonTypeInfoLight類型的UIButton的可點擊區域似乎比其框架大得多。因此,我不能在它旁邊放置一個按鈕,試圖點擊它會改爲點擊信息按鈕。獲取或設置UIButtonTypeInfoLight的點擊區域

_infoButton.frame = CGRectMake(0, 0, 40, height); 
_searchButton.frame = CGRectMake(CGRectGetMaxX(_infoButton.frame), 0, 40, height); 

有沒有人有任何有關如何獲得按鈕的可點擊區域insite?

編輯:讓按鈕旁邊的信息按鈕它不是我的核心問題(只是爲什麼它可能是重要的說明)。我的問題是要找出這些類型的按鈕的「命中區域」。

+0

您是否檢查信息按鈕位於搜索按鈕的前面還是後面? – Guilherme

+0

默認情況下,UIButtonTypeInfoLight尺寸的Dude按鈕類型爲18 x 19.爲什麼在世界上,你將它製作爲40 x高度? –

+0

@SamBudda我這樣做是爲了讓按鈕在我爲它提供的框架中居中。即使有了這些默認尺寸,其「擊中區域」也超出了該框架,這是我想了解更多關於 – Nathan

回答

3

我不確定從代碼中查找命中區域的具體區域,但是有一種方法可以專門設置可點擊的區域。您可以繼承UIButton並覆蓋UIViewhitTest:withEvent:以設置區域。下面是一個示例,顯示擴大命中區域,但我敢肯定,你可以用它來減少面積以及:Larger Hit Area for UIButton

我想你可以使用這種方法的嘗試和錯誤來挖掘區域,並找出什麼是或不在該命中區域的範圍內。我知道這並不理想,但這就是我發現的。

+0

我想這是最好的答案。命中區域較大,但在任何地方都沒有定義,這很奇怪。好的技巧雖然檢查它 – Nathan