2016-11-18 28 views
1

UIButton的titleLabel是可選的原因是什麼?UIButton的titleLabel是可選的原因是什麼?

通過放置感嘆號隱式解開此可選項是否安全?如果不是,titleLabel爲零的情況如何?

順便說一下,我使用UIButton.titleLabel來更改UIButton無法直接訪問的UILabel屬性,例如更改字體或具有多行標籤。

回答

1

最佳做法是不強制展開,但幾乎可以保證在需要時存在UIButton.titleLabel。我不是100%肯定的語法,但它是某種形式的延遲加載的不是lazy var titleLabel:UILabel = {}()

個人,如果你很在意展開我會用我要說guardif let

guard let label = myButton.titleLabel else {return} 
label.font = .systemFontOfSize(10.0) 

if let label = myButton.titleLabel { label.font = .systemFontOfSize(10.0) }

+0

很好解釋,謝謝! – AamirR

0

因爲Button可以沒有任何Title分配給它。有時只需要圖像。

因此,在某些情況下,如果您嘗試訪問按鈕的標題而未指定該標題,則應用程序可能會崩潰。

+0

不正確。 'let btn = UIButton()'後跟'print(btn.titleLabel == nil)'總是打印錯誤,據我所知。 –

相關問題