我在UIButton上添加左填充时遇到了麻烦。我有一个UIButton和UIControlContentHorizontalAlignmentLeft。我希望文本显示在左侧,但它太左了。当我给予边框时,它看起来不太好。我想在文本上添加一些像CSS中的5px左右的填充。我在谷歌上搜索了解决方案,但没有找到一个特别适合UIButton的。
UIButton
UIControlContentHorizontalAlignmentLeft
jyztefdp1#
titleEdgeInsets按钮标题绘制矩形边缘的内边距或外边距。
@属性(非原子)UI边缘插入标题边缘插入
讨论使用此属性可调整按钮标题的有效绘图矩形的大小和位置。您可以为四个插图中的每个指定不同的值(上、左、下、右)。正值会缩小或插入该边缘,使其更靠近按钮的中心。负值会扩大或突出该边缘,使用UIEdgeInsetsMake函数构造此属性的值。默认值为UIEdgeInsetsZero。可用性在iOS 2.0及更高版本中可用。
在UIButton. h中声明给予这个:)
[myButton setTitleEdgeInsets:UIEdgeInsetsMake(0.0, 5.0, 0.0, 0.0)];
此外,如果您使用的是自定义按钮,则会有内容插入和图像插入等功能。如果你已经在这里寻找斯威夫特。这是有效的斯威夫特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
bybem2ql2#
Post Xcode 8如果你想通过界面生成器(IB)设置这些插入,你会在尺寸检查器而不是属性检查器中找到这些插入设置。希望这个有用。
wvt8vs2t3#
下面是一个更好的答案:
代码:
extension UIButton { func addLeftPadding(_ padding: CGFloat) { titleEdgeInsets = UIEdgeInsets(top: 0.0, left: padding, bottom: 0.0, right: -padding) contentEdgeInsets = UIEdgeInsets(top: 0.0, left: 0.0, bottom: 0.0, right: padding) } }
用法:
myButton.addLeftPadding(10)
z8dt9xmd4#
在Xcode 6中,您可以在IB中指定标题插入:
gdx19jrr5#
下面是解决此问题的另一个示例:
[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];
此外,如果您的按钮有图像,您可以简单地添加:
[self.myButton setImage:[UIImage imageNamed:@"YourImage.png"] forState:UIControlStateNormal];
祝你好运!
pieyvz9o6#
_myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; _myButton.contentEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);
6条答案
按热度按时间jyztefdp1#
titleEdgeInsets按钮标题绘制矩形边缘的内边距或外边距。
@属性(非原子)UI边缘插入标题边缘插入
讨论使用此属性可调整按钮标题的有效绘图矩形的大小和位置。您可以为四个插图中的每个指定不同的值(上、左、下、右)。正值会缩小或插入该边缘,使其更靠近按钮的中心。负值会扩大或突出该边缘,使用UIEdgeInsetsMake函数构造此属性的值。默认值为UIEdgeInsetsZero。
可用性在iOS 2.0及更高版本中可用。
在UIButton. h中声明
给予这个:)
此外,如果您使用的是自定义按钮,则会有内容插入和图像插入等功能。
如果你已经在这里寻找斯威夫特。这是有效的斯威夫特3.0😃
您也可以直接设置它。如果要使用一个或两个属性,这会很有帮助。
bybem2ql2#
Post Xcode 8如果你想通过界面生成器(IB)设置这些插入,你会在尺寸检查器而不是属性检查器中找到这些插入设置。
希望这个有用。
wvt8vs2t3#
下面是一个更好的答案:
代码:
用法:
z8dt9xmd4#
在Xcode 6中,您可以在IB中指定标题插入:
gdx19jrr5#
下面是解决此问题的另一个示例:
此外,如果您的按钮有图像,您可以简单地添加:
祝你好运!
pieyvz9o6#