加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift – 如何在UIButton的右边缘对齐UIButton图像

发布时间:2020-12-14 05:30:47 所属栏目:百科 来源:网络整理
导读:如何将图像对齐到UIButton的右边缘,因此它将保留在所有设备的右边缘.下图显示了带有图像的UIButton(圆三角形).图像是来自iPhone 6的屏幕截图,它符合我的要求.但是对于iPhone 6,图像向左移动一点,对于iPhone 5,它向右移动,图像显示在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,right: 0)

显然,无论按钮的宽度如何,当您想要做的是相对于右侧进行配置时,它将无法工作!如果由于自动布局或其他原因按钮变宽或变窄,您的图像将被悬挂在错误的位置.改为设置正确的插图.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读