swift 定制自己的Button样式

swift的UIButton类中有些公开方法可以重写,所以,如果想写出自己的UIButton,只要继承UIButton类,并重写相应的方法即可。

系统的UIButton可以添加图片,也可以添加标题,但是不能同时都加上去,怎么办呢?

import UIKit

class BackButton: UIButton
{
    
    override func titleRectForContentRect(contentRect: CGRect) -> CGRect
    {
        return CGRectMake(self.frame.size.width/3.0, self.frame.size.height/6.0, self.frame.size.width/4.0*3.0, self.frame.size.height/3.0*2.0)
    }
    override func imageRectForContentRect(contentRect: CGRect) -> CGRect
    {
        return CGRectMake(0, self.frame.size.height/6.0, self.frame.size.width/4.0, self.frame.size.height/3.0*2.0)
    }

}

 

上面这个简单的类改变了UIButton中的图片和标题的位置,使用该类创建的button可以同时给button添加图片和文字,如下:

 

let backBtn = BackButton()
backBtn.frame = CGRectMake(0, 0, 60, 30)
backBtn.setImage(UIImage(named: "backImg"), forState:UIControlState.Normal)
backBtn.setTitle("返回", forState: UIControlState.Normal)

 

更多的方法重写,未完待续... ...

posted @ 2016-09-02 22:28  BuddyLiu  阅读(3321)  评论(0编辑  收藏  举报