UIButton的标题标签是可选的原因是什么?
通过放置感叹号隐式解开此可选项是否安全?如果不是,那么当titleLabel为nil时是什么情况?
BTW,我使用UIButton.titleLabel
更改UIRabel属性,这些属性无法直接从UIButton访问,例如更改字体或具有多行标签。
答案 0 :(得分:1)
最佳做法不是强行打开包装,但您可以在需要时保证存在UIButton.titleLabel
。我不是100%确定语法,但它是某种形式的延迟加载而不是lazy var titleLabel:UILabel = {}()
我个人会说,如果你担心打开我会使用guard
或if let
guard let label = myButton.titleLabel else {return}
label.font = .systemFontOfSize(10.0)
if let label = myButton.titleLabel { label.font = .systemFontOfSize(10.0) }
答案 1 :(得分:1)
因为Button可以没有分配任何Title
。有时只需要Image。
因此,在某些情况下,当您尝试访问Button的标题时,如果不指定一个,则应用程序可能会崩溃。