UIButton
に表示されているテキストを変更しようとすると、次のように動作しないことがあると、少し混乱しました。UIButtonのタイトルラベルを設定する
// 001
[[[self button] titleLabel] setText:@"Peanuts"];
私は理由を知っていると思いますが、ここで私の考えを確認したかったのです。 001はtitleLabelテキストプロパティを設定しますが、UILabel
(サブビューはUIButton
)であるため、UIは再描画されません。これにより、UILabel
テキストプロパティに内部的な変更が行われますが、悲しいことにUIでは視覚的な変更はありません。これは、メソッドのsetTitleように思わ
// 002
[[self button]setTitle:@"Peanuts" forState:UIControlStateNormal];
:forStateは行くための正しい方法ですが、それは状態を必要とするの余分なオーバーヘッドを持っているが、そのはUIButton
に直接呼び出されるので、UIが再描画呼び出しません。私の質問は、これを行う正しい方法は002です、私は何か完全に間違っていない限り、それはそうだと思われるでしょうか?
ありがとう、よろしくお願いいたします。 – fuzzygoat