如何对齐UIButton右边的UIButton图像

如何将图像对齐到UIButton的右边缘,因此它将留在所有设备的右边缘。 下图显示了带图像的UIButton(圆形三角形)。 该图像是iPhone 6的屏幕截图,符合我的要求。但对于iPhone 6+,图像稍微向左移动,对于iPhone 5,图像向右移动,图像显示在的UIButton。 我知道原因,这是因为我将UIEdgeInsets的左边值设置为300,这对于iPhone 6来说非常合适。所以我的问题是如何为所有iPhone实现这种外观。 谢谢。

我的代码为UIButton:

class DropDownButton : UIButton{

    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)!
        style()
    }

    private func style() {
        self.titleEdgeInsets.left = 0
        self.layer.cornerRadius = 2;
        self.setImage(UIImage(named: "Arrow_Close"), forState: UIControlState.Normal)
        self.imageEdgeInsets = UIEdgeInsets(top: 0, left: 300, bottom: 0, right: 0)
        self.backgroundColor = UIColor(CGColor: "#FFFFFF".CGColor)
        self.tintColor = UIColor(CGColor: "#616366".CGColor)
        self.titleLabel!.font = UIFont(name: "OpenSans", size: 15)



    }
}

问题在于你正在对左侧插入进行硬编码:

self.imageEdgeInsets = UIEdgeInsets(top: 0, left: 300, bottom: 0, right: 0)

很显然,当你想要做的是无论按钮的宽度如何配置时,这都不会起作用! 如果按钮由于自动布局等原因而变宽或变窄,则图像将被遗留在错误的地方。 改为设置右插入。

或者,子类UIButton并重写imageRectForContentRect: 现在,图像的位置将基于按钮的大小,无论它是什么(因为自动布局或其他)。

链接地址: http://www.djcxy.com/p/30785.html

上一篇: How to align an UIButton image on the right edge of the UIButton

下一篇: Windows 10 Close, Minimize and Maximize buttons