21

我是 iOS 应用程序开发的新手,想知道如何UIEdgeInsets在按钮中使用属性,所以请指导我。

4

3 回答 3

78

首先,您的问题对于您要达到的目标不是很清楚,所以……问一个普遍的问题,得到一个普遍的答案。

UIButton 具有 UIEdgeInsets 类型的三个属性 - contentEdgeInsetstitleEdgeInsetsimageEdgeInsets。您可以使用这些属性为所有按钮内容分配特定的插图,包括标题和图像,或者单独分配一个或另一个。

UIEdgeInsetsMake()您使用该函数创建 UIEdgeInsets 值。UIEdgeInsets 分别为顶部、左侧、底部和右侧(分别)的插入值封装了四个不同的 CGFloat 值。正的插入值会缩小内容区域,而负的插入值会有效地增加内容区域。

如果您对如何将 UIEdgeInsets 与 UIButton 一起使用有更具体的问题,我建议您重新考虑如何询问并重试。:)

编辑(以解决评论中的问题):听起来您想要执行以下操作,然后:

UIEdgeInsets titleInsets = UIEdgeInsetsMake(0.0, 7.0, 0.0, 0.0);
button.titleEdgeInsets = titleInsets;
于 2009-11-23T05:36:32.220 回答
3

如果您想要 Button 的扩展名并简单地使用,请使用此

button.setInset(顶部:0.0,左侧:7.0,底部:0.0,右侧:0.0)

extension UIButton {
    /**
        Creates an edge inset for a button
        :param: top CGFLoat
        :param: left CGFLoat
        :param: bottom CGFLoat
        :param: right CGFLoat
    */
    func setInset(#top: CGFloat, left: CGFloat, bottom: CGFloat, right: CGFloat) {
           self.titleEdgeInsets =  UIEdgeInsetsMake(top, left, bottom, right)
    }
}
于 2015-01-14T22:25:17.817 回答
0

请注意,有时您不需要设置 contentEdgeInsets。只需给按钮更大的高度和宽度约束。标题本身将自动居中。

于 2017-03-02T17:14:48.523 回答