2012-12-11 58 views
1

如何在子類化時繪製UIButton的標題? 由於用於繪製按鈕的自定義drawRect方法,我需要繼承UIButton類。如何在重寫它的drawRect時顯示UIButton的標題

我相信我必須在drawRect方法內畫出標題,我能看到正確的嗎?

+0

或者只是調用'[super drawRect:]'... – 2012-12-11 20:02:31

+2

請看看http://stackoverflow.com/questions/6443639/objective-c-buttons-created-from-subclass-of-uibutton-類不工作 - 對UIButton進行子類化以覆蓋繪圖是非常棘手的。 – Anton

+0

'[super drawRect:]'方法假設要做什麼?是否會畫出標題? (當然,我用'self.titleLabel.text = titleName'設置標題 – c2programming

回答

1

如果可以的話,最好(並建議Apple)不要繼承UIButton。大多數自定義外觀可以通過將背景圖像設置爲標準「自定義」按鈕來實現。這樣,您仍然可以獲得調整大小,標籤,圖像等功能,而無需進行子類化。一個按鈕有一個背景圖像,一個圖像和一個標題標籤 - 這些組件的繪製方式和方式都不公開。

如果圖像是在運行時派生的,您仍然可以使用上述技術,但是可以繪製一個新的圖形上下文,提取圖像並使用它。

如果你真的必須使用drawRect方法,我會繼承UIControl而不是UIButton。

+0

好吧,我應該在UIImage中執行自定義繪圖,然後將其設置爲背景嗎? – c2programming

+0

是的。巧合的是這是我一整天都在做的事情...... – jrturton

+0

我寫過關於這裏非常類似的東西:http://commandshift.co.uk/blog/2012/12/09/subtle-ui-te代碼示例/ – jrturton