1. ホーム
  2. ios

[解決済み] UIButtonのフォントサイズと幅の調整

2022-08-02 07:52:50

質問

次のようなコードがあります。

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0.0, 0.0, 25, 25);

[[button layer] setCornerRadius:5.0f];
[[button layer] setMasksToBounds:YES];
[[button layer] setBackgroundColor:[[UIColor redColor] CGColor]];
[button.titleLabel setFrame:CGRectMake(0,0, 25, 25)];

[button setTitle:[NSString stringWithFormat:@"%@", [[topics objectAtIndex:indexPath.row] unread]] forState:UIControlStateNormal];

問題は、テキスト内の文字列が長くない時は、問題なく表示されます(1~2桁)。しかし、かなり長い場合(3桁以上)、赤いボタンしか表示されず、中のテキストが表示されないのです。どのように調整すればよいのでしょうか?

それはないと思います。

[button.titleLabel setAdjustsFontSizeToFitWidth:YES];

は仕事をしますよね?

どのように解決するのですか?

これを試してみてください。

button.titleLabel?.numberOfLines = 1
button.titleLabel?.adjustsFontSizeToFitWidth = true
button.titleLabel?.lineBreakMode = .byClipping //<-- MAGIC LINE

なぜこれでうまくいくのかよくわかりませんが、うまくいっています :)