如何在编程创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);