首页 > 编程语言 > 详细

Swift-代理

时间:2016-12-28 20:43:46      阅读:204      评论:0      收藏:0      [点我收藏+]

委托是一种设计模式,它允许类或结构体将一些需要它们负责的功能交由给其他的类型

委托模式的实现很简单: 定义协议来封装那些需要被委托的函数和方法,使其遵循着拥有这些被委托的函数和方法

 

//制定需要遵守的协议,制定协议遵守NSObjectProtocol协议

protocol bottomViewDelegate : NSObjectProtocol {

    //设置协议的方法

    func bottomViewClick(btn : UIButton)

}

class BottomView: UIView {

    

    var btn : UIButton!

    //weak定义代理

    weak var delegate : bottomViewDelegate?

    override init (frame : CGRect){

        super.init(frame: frame)

        let arr = ["","",""]

        forin 0..<3 {

            btn = UIButton(type: .custom)

            btn.frame = CGRect(x: 375/3*i , y: 0, width: 375/3, height: 44)

            btn.setTitle(arr[i], for: .normal)

            btn.tag = i

            btn.backgroundColor = UIColor.gray

            btn.setTitleColor(i == 1 ? UIColor.blue : UIColor.black, for: .normal)

            btn.addTarget(self, action: #selector(clickedButton(button:)), for: .touchUpInside)

            self.addSubview(btn)

        }

    }

    func clickedButton(button : UIButton){

        //判断代理是否存在,让代理去执行方法

        delegate?.bottomViewClick(btn: button )

        

    }

    

    required init?(coder aDecoder: NSCoder) {

        fatalError("init(coder:) has not been implemented")

    }

 

}

 

Swift-代理

原文:http://www.cnblogs.com/lcl15/p/6230564.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!