如何在编程创build的UIButton上添加填充左侧?
我在加UIButton
左填充时遇到了麻烦。 我有UIControlContentHorizontalAlignmentLeft
UIButton
。 我希望文本显示在左侧,但它太左。 当我给边界的时候,看起来不太好。 我想给像CSS一样的5px左右的文本填充一些。 我googlesearch的解决scheme,但无法find一个特别是UIButton
。 预先感谢您的帮助。
titleEdgeInsetsbutton标题绘图矩形边缘的插入或开始边距。
@属性(非primefaces)UIEdgeInsets titleEdgeInsets
讨论使用此属性来调整和重新定位button标题的有效绘图矩形。 您可以为四个插图(顶部,左侧,底部,右侧)中的每一个指定不同的值。 一个正值缩小,或插入,边缘移动它靠近button的中心。 负值会扩大或突破该边缘。 使用UIEdgeInsetsMake函数为此属性构造一个值。 默认值是UIEdgeInsetsZero。
Availability在iOS 2.0及更高版本可用。
在UIButton.h中声明
给这个试试:)
[myButton setTitleEdgeInsets:UIEdgeInsetsMake(0.0, 5.0, 0.0, 0.0)];
另外,如果您使用的是自定义button,则会出现“内容插入和图像插入”这样的事情。
因为你已经在这里找Swift了。 这是有效的Swift 3.0😃
myButton.titleEdgeInsets = UIEdgeInsets(top: 0.0, left: 5.0, bottom: 0.0, right: 0.0)
你也可以直接设置它。 如果想要使用一个或两个属性是有帮助的。
myButton.titleEdgeInsets.top = 0 myButton.titleEdgeInsets.left = 5 myButton.titleEdgeInsets.bottom = 0 myButton.titleEdgeInsets.right = 0
在XCode6中,您可以在IB中指定标题插入:
以下是更好的答案:
- 避免截断button标题
- 避免标题超出button的视野
- 使button框架与图像很好地工作。
码:
// Obj-C CGFloat padding = 10.0f; [myButton setTitleEdgeInsets:UIEdgeInsetsMake(0, padding, 0, -padding)]; [myButton setContentEdgeInsets:UIEdgeInsetsMake(0, 0, 0, padding)]; // Swift let padding: CGFloat = 10.0 myButton.titleEdgeInsets = UIEdgeInsets(top: 0.0, left: padding, bottom: 0.0, right: -padding) myButton.contentEdgeInsets = UIEdgeInsets(top: 0.0, left: 0.0, bottom: 0.0, right: padding)
如果要通过界面构build器(IB)设置这些插入符,请将Xcode 8过帐,您将在大小检查器而不是属性检查器中find这些插入设置。
希望这可以帮助。
这是另一个例子,如何解决这个问题:
[self.myButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; float padding_button = 6.0f; UIEdgeInsets titleInsets = UIEdgeInsetsMake(0.0f, padding_button, 0.0f, -padding_button); UIEdgeInsets contentInsets = UIEdgeInsetsMake(padding_button, 0.0f, padding_button, 0.0f); CGFloat extraWidthRequiredForTitle = titleInsets.left - titleInsets.right; contentInsets.right += extraWidthRequiredForTitle; [self.myButton setTitleEdgeInsets:titleInsets]; [self.myButton setContentEdgeInsets:contentInsets]; [self.myButton sizeToFit];
另外如果你的button有一个图像,你可以简单地添加:
[self.myButton setImage:[UIImage imageNamed:@"YourImage.png"] forState:UIControlStateNormal];
祝你好运!
_myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; _myButton.contentEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);