方法1:
在需要調(diào)整的按鈕類中, 重寫系統(tǒng)方法
class myButton : UIButton {
override func titleRectForContentRect(contentRect:CGRect) -> CGRect {
? ? return CGRect
}
override func titleRectForContentRect(contentRect:CGRect) -> CGRect {
??? return CGRect
}
}
方法二 重寫layout方法
override func layoutSubviews() {
super.layoutSubviews()
titleLabel?.frame.offsetInPlace(dx:? -imageView!.frame.width * 0.5, dy: 0)
imageView?.frame.offsetInPlace(dx:? titleLabel!.frame.width *0.5, dy: 0)
//之所以乘0.5是因?yàn)檎{(diào)用了2次
}
方法三 直接修改titleLabel 和 imageView 的x坐標(biāo)
//swift和oc不一樣 swift語法允許我們直接修改一個(gè)對象的結(jié)構(gòu)體屬性
override func layoutSubviews(){
super.layoutSubviews()
titleLabel?.frame.origin.x = 0
imageView?.frame.origin.x = titleLabel!.frame.width
}
//為了美觀 文字和圖片中應(yīng)有些間距
//方法一
override func setTitle(title:String? , forState state: UIControlState) {
//?? 用于判斷前面的參數(shù)是否為nil,如果是nil就返回??后面的數(shù)據(jù) 如果是nil就不執(zhí)行
super.setTitle(title ?? "" + "? ",forState: state)
}