2013-06-12 8 views
14

iOS 6で自動レイアウトを使用する場合、UIButtonの本質的なコンテンツサイズにはボタンテキストの周りに約10ピクセルのパディングが含まれているようです。このパディング値を制御する方法はありますか?例えば、私はそれぞれの側に5pxのためにパディングを設定することになる、このような何かを行うことができるようにしたい:自動レイアウトを使用するときにデフォルトのUIButtonパディングを変更する方法

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

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

どちらの方法でも、実際のパディング値を正の数で指定することができますが、負の数で表されるデフォルトの調整はできません。これが可能なら誰でも知っていますか?

答えて

7

私は2年以上前にこの質問を投稿することを実現するが、私はフォローアップしたいとcontentEdgeInsetsプロパティがautolayoutで正しく動作するように見えることに注意してください。たとえば、次のコードでは、コンテンツの周囲に20ピクセルの余白があるボタンが作成されます。

button.contentEdgeInsets = UIEdgeInsetsMake(20, 20, 20, 20); 
3

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

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

+0

魅力的な作品です! –

関連する問題