18

iOS 6 で自動レイアウトを使用する場合、UIButton の固有のコンテンツ サイズには、ボタン テキストの周りに約 10 ピクセルのパディングが含まれているように見えます。このパディング値を制御する方法はありますか? たとえば、パディングを両側で 5px に設定する、次のようなことができるようにしたいと思います。

[button setPadding:UIEdgeInsetsMake(5, 5, 5, 5)];

contentEdgeInsets、titleEdgeInsets、および imageEdgeInsets をすべて無駄に設定しようとしました。奇妙なことに、contentEdgeInsets で負の左または右の値を指定すると、何らかの効果があるように見えますが、上または下には影響しません。

いずれにせよ、実際のパディング値を負の数として表されるデフォルトの調整ではなく、正の数として指定できるようにしたいと考えています。これが可能かどうか知っている人はいますか?

4

2 に答える 2

12

この質問を 2 年以上前に投稿したことは承知していますが、フォローアップして、contentEdgeInsetsプロパティが自動レイアウトで正しく機能するようになったことに注意したいと思います。たとえば、次のコードは、コンテンツの周囲に 20 ピクセルのマージンを持つボタンを生成します。

button.contentEdgeInsets = UIEdgeInsetsMake(20, 20, 20, 20);
于 2015-09-30T13:39:11.350 に答える
3

UIButton をサブクラス化せずにこれを実行できるかどうかはわかりません。サブクラス化する場合は、このメソッドをオーバーライドするとうまくいく可能性があります (私はこれを試していません)。

- (UIEdgeInsets)alignmentRectInsets { return UIEdgeInsetsMake(5, 5, 5, 5); }

于 2013-06-29T05:32:14.887 に答える