2014-07-25 89 views
0

我想創建一個關閉按鈕,它看起來像一箇中間帶有x的圓。在x代碼中,我將按鈕的大小和寬度設置得很大,以便可觸摸區域更大(50 x 50,字體僅爲22)。如何創建一個帶有大的可點擊區域的小按鈕

我創建了一個按鈕,將標題更改爲X,然後進行以下設置:

[self.closeButton.layer setBorderWidth:2.0f]; 
[self.closeButton.layer setBorderColor:[[UIColor whiteColor] CGColor]]; 
[self.closeButton.layer setCornerRadius:self.closeButton.bounds.size.width/2]; 

圓邊境距離X.太遠我將如何把邊界在更嚴格的X,但不減少可點擊區域的大小?

+0

我懷疑你可以。你可能不得不讓按鈕「大」,但通過繼承使它看起來更小。 – trojanfoe

+0

你可以添加一個子視圖到按鈕來繪製任何你想要的大小的圓,並使實際的按鈕儘可能大。 –

+0

與我的解決方案一起工作,您必須將邊框設置爲圖像而不是按鈕。 – Max

回答

3

將圖像分配給按鈕。並根據需要製作可點擊區域。然後通過將該按鈕的插入值設置爲頂部,底部,左側,右側來設置按鈕中的圖像位置。根據您的要求更改此值。您可以從界面構建器中設置插圖值,如圖所示。更改值並查看差異,以便將圖像置於按鈕中的確切位置。

setting inset

正是這樣的形象

setting inset with more tappable area

1

我建議正是馬克斯做了。他展示瞭如何通過IB做這個,你這是怎麼做到這一點通過代碼:

myButton.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 25, 25);// UIButton 

myBarButtonItem.imageInsets = UIEdgeInsetsMake(0, 0, 25, 25);// UIBarButtonItem 

編輯:

對不起,不正確讀取您的問題第一次。我想你會用這種方法遇到同樣的問題:按鈕的邊框/角半徑而不是尊重任何插入。它將根據按鈕的框架繪製。我頭頂的唯一(簡單)解決方法是創建一個包含邊框和邊角的圖像,然後將其設置爲圖像。圖像將尊重插頁,並且您將擁有您想要的可點擊區域,並且邊框完全位於您想要的位置。

可能還有更多優雅解決方法通過子類化,但除非您在任何階段更改邊框寬度/顏色或按鈕的圓角半徑,否則我會建議使用自定義圖像。

編輯2:

使用圖片代替的,你可能想使用this unicode character

+0

準確地說,我的觀點是...... :-) – Max

+0

@Max,我相信我們並沒有真正回答他的問題。 – n00bProgrammer

+0

答案是正確的。但他希望邊界更接近X圖像。這可以通過在圖像中添加邊框來處理我們的解決方案。 – Max

相關問題