2017-04-19 7 views
1

UILabelの子であるテキストをUIButtonに設定しようとしています。UIButton上のUILabel突然変異により、テキストが表示されない/表示上の間違ったアライメント

私が変更しているテキストが間違っています。なんらかの理由で、アライメントが中央に置かれていても、アラインメントが左に表示され、それ以外の場合には変更されたテキストはまったく表示されません。

唯一の解決策は、_titleAttributesChangedと呼ばれるプライベートAPIを実行することでした。おそらくラベルを再レンダリングするように呼び出すことで解決しました。

これを解決する方法についてご意見がありますか?

+1

あなたの問題をいくつかのコードとスクリーンショットを追加すると、私は考えて良いでしょう。 – dirtydanee

+0

* "UIButtonの子であるUILabelにテキストを設定しようとしています。" * - UIButtonにサブビューとして 'UILabel'を追加したことを意味しますか?または、標準のUIButtonの内部を操作しようとしていますか? – DonMag

+0

いいえ、実際のタイトルボタンのラベル。 実行時にテキストを変更しようとしています – yanivH

答えて

1

私はUILabelの必要はないと思うが、あなたはボタンのテキストをそのタイトルとして以下のコードを使用して設定することができる。

Objective-Cで:これが役立つことを願っていスウィフトで

[buttonName setTitle: @"YourText" forState: UIControlStateNormal]; 

buttonName.setTitle("YourText" forState: UIControlState.Normal) 
+0

ありがとうございます! これはうまくいきました。 上記のようにタイトルを設定すると、変更時に瞬き効果が発生するという新たな問題が発生しました。 – yanivH

+0

@yanivH UIButtonTypeを次のようなカスタムに設定しようとします。 Objective C:buttonName = [UIButton buttonWithType:UIButtonTypeCustom]; Swift:ボタンをUIButton.buttonWithType(UIButtonType.System)をUIButtonとして使用します これはうまくいくはずです。 – ShivJ

関連する問題