可以重新构建一个继承于UIbutton的类,然后重写布局方法
import UIKit
class RightImageLeftTitleButton: UIButton {
override init(frame: CGRect) {
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func layoutSubviews() {
super.layoutSubviews()
//这里计算标题和图片等起始位置
let viewX:CGFloat = (self.frame.size.width - (titleLabel?.frame.size.width)! - (imageView?.frame.size.width)! - 8) / 2
titleLabel?.frame.origin.x = viewX
imageView?.frame.origin.x = (titleLabel?.frame.maxX)! + 8
}
}