2013-06-12 70 views
14

當在iOS 6中使用自動佈局時,UIButton的內在內容大小似乎在按鈕文本週圍包含大約10px的填充。有沒有辦法控制這個填充值?例如,我希望能夠做這樣的事情,這將設置填充到5PX每側:如何在使用自動佈局時更改默認的UIButton填充

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

我已經嘗試設置contentEdgeInsets,titleEdgeInsets和imageEdgeInsets,都無濟於事。奇怪的是,在contentEdgeInsets中指定一個負的左值或右值似乎有一些效果,但不是頂部或底部。

無論哪種方式,我希望能夠指定實際的填充值作爲正數,而不是表示爲負數的默認值的調整。任何人都知道這是可能的嗎?

回答

7

我知道我張貼兩年前這個問題,但我想跟進,請注意,contentEdgeInsets屬性現在似乎可以在自動佈局中正常工作。例如,以下代碼會生成一個按鈕,其內容周圍的邊距爲20像素:

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

我不確定是否可以做到這一點,而無需繼承UIButton。如果你願意的子類,重寫此方法可能做的伎倆(我沒有試過):

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

+0

工作方式類似於魅力! –

相關問題