なぜUIButtonのtitleLabelがオプションなのか?なぜUIButtonのtitleLabelがオプションなのか?
感嘆符を付けることで、このオプションを暗黙的にアンラップすることは安全ですか?そうでない場合、titleLabelがnilの場合はどうなりますか?
私はUIButton.titleLabel
を使用して、UIButtonから直接アクセスできないUILabelプロパティを変更します。たとえば、フォントを変更したり、複数行のラベルを付けることができます。
なぜUIButtonのtitleLabelがオプションなのか?なぜUIButtonのtitleLabelがオプションなのか?
感嘆符を付けることで、このオプションを暗黙的にアンラップすることは安全ですか?そうでない場合、titleLabelがnilの場合はどうなりますか?
私はUIButton.titleLabel
を使用して、UIButtonから直接アクセスできないUILabelプロパティを変更します。たとえば、フォントを変更したり、複数行のラベルを付けることができます。
ベストプラクティスは強制的にアンラップするものではありませんが、必要なときには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) }
ボタンに割り当てられた任意のTitle
せずにすることができるからです。場合によってはImageのみが必要です。
したがって、ボタンのタイトルに割り当てようとすると、そのボタンのタイトルにアクセスしようとすると、アプリがクラッシュすることがあります。
'let btn = UIButton()'とそれに続く 'print(btn.titleLabel == nil)'は私が知る限り、常にfalseを出力します。 –
すてきなことに、ありがとう! – AamirR