web-dev-qa-db-ja.com

テキストをUIButtonに合わせるにはどうすればよいですか?

問題:

ボタンのサイズで十分ですが、タイトルを変更すると、タイトルのテキストがボタンの幅に収まりません。 SDK関数でこの問題を解決できますか、それとも手動でコーディングして解決する必要がありますか?

以下の写真を参考にしてください。

nibファイルのデザイン。 enter image description here

シミュレーターでの最初のショー enter image description here

タイトルのテキストを変更したとき enter image description here

以前にいくつかの方法を試しました

  1. _button.titleLabel.adjustsFontSizeToFitWidth = YES;
    フォントサイズが変更されます。私は道を受け入れることができません。

  2. [_button setTitleEdgeInsets:UIEdgeInsetsMake(10.0、10.0、0.0,0.0)];
    ラベルの位置ではなく、ラベルの位置のみを変更する方法。

  3. [_button.titleLabel sizeToFit];
    結果は、picture(3)と同じです。

  4. [_button sizeToFit];
    タイトルが左上隅に移動しましたが、タイトルは同じ結果です。

混乱しましたが、ボタンのサイズは十分に大きいのですが、タイトルのサイズが非常に小さいのはなぜですか。

21
CCC

これを使って。

Objective-c

button.titleLabel.numberOfLines = 1;
button.titleLabel.adjustsFontSizeToFitWidth = YES;
button.titleLabel.lineBreakMode = NSLineBreakByClipping; 

Swift 2.0

button.titleLabel?.numberOfLines = 0
button.titleLabel?.adjustsFontSizeToFitWidth = true
button.titleLabel?.lineBreakMode = NSLineBreakMode.ByWordWrapping

注:Swiftコード提供:@Rachel Harvey

42
Nilesh

この質問に遭遇した人のために:

セッターを使ってみてください:

 [self.myButton setTitle:@"Title" forState:UIControlStateNormal];
 [self.myButton sizeToFit];
12

また、ラベルがフォントサイズの調整よりも優先されるように見えるため、ラベルが後の間隔を調整しないことを確認してください。また、minimumScaleFactor <1であることを確認してください。

button.titleLabel.adjustsFontSizeToFitWidth = YES;
button.titleLabel.adjustsLetterSpacingToFitWidth = NO;
button.titleLabel.minimumScaleFactor = 0.5;
3
user3099609

Swiftバージョン:

    let button = UIButton()
    button.titleLabel?.numberOfLines = 1
    button.titleLabel?.adjustsFontSizeToFitWidth = true
    button.titleLabel?.lineBreakMode = NSLineBreakMode.ByClipping
2
Esqarrouth

IBでは、ボタンを選択してエディターメニューに移動し、[コンテンツに合わせてサイズ]を選択します。

0
rdelmar