大きなフォントサイズのUIButtonを扱うとき、私は奇妙な振る舞いを見つけました:
私のiPadアプリケーションでは、そのような種類のUIButtonを表示する必要があります。大きなフォントサイズのUIButtonにイタリック体を適用すると、テキストは以下のように切り捨てられます。
これは私のUIButtonが正しくなっているので奇妙です中心的で十分に大きい。 sizeToFitは役に立たない。 私はより多くを知るためにログを入れようとしました、そして、ボタンのUILabelの内部のサイズが小さすぎるように見えます:
NSLog(@"Button width : %.1f, text width : %.1f", button.frame.size.width, button.titleLabel.frame.size.width);
[button.titleLabel sizeToFit];
NSLog(@"Button width : %.1f, text width : %.1f", button.frame.size.width, button.titleLabel.frame.size.width);
それは私に与える:
ボタン幅:710.3、テキスト幅:518.0
ボタン幅:710.3、テキスト幅:518.0
イタリックスタイルのUIButtonに150ピクセル以上のフォントサイズを適用すると、IBで直接考えているようになります。 それを修正する方法はありますか、それともSDKのバグですか?
回答:
回答№1は1ボタンのタイトルを次のように設定することができます
[button setTitle:@"2 " forState:UIControlStateNormal/Highlighted/Selected];
またはを使用して同じことを行う。あなたのViewControllerに関連付けられたxibファイル。 その後、対応する.xibファイルから行うことができるボタンのタイトルのエッジのインセットを設定するか、次のようにします。
[button setTitleEdgeInsets:UIEdgeInsetsMake(0,spacingFromLeft, 0, 0)];
2番目のステップでは、この場合、文字列「2」は中央に向かって整列したままである。したがって、UIEdgeInsetsMake()メソッドのleftSpacingパラメータでは、要件に応じて幅を設定して、中心に合わせることができます。
私も同じ問題を抱えていましたが、この解決法を採用しましたが、これはベストまたは正しいアプローチではないかもしれませんが、確かに私のために働いていました。
回答№2の場合は0
私はそれが大きなフォントサイズ(ボタン/ラベルサイズに相対)の組み合わせだと思う。スペースを追加すると、実際にはUILabelのサイズが大きくなります。
試す [button.titleLabel adjustsFontSizeToFitWidth]
。これはフォントサイズを(指定されたフレームサイズに対して大きすぎる場合は)確実に減らしますが、文字の何も切り落とされないようにします。