zoukankan      html  css  js  c++  java
  • Swift-代理

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

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

     

    //制定需要遵守的协议,制定协议遵守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, 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")

        }

     

    }

     

  • 相关阅读:
    关于JQ中,新生成的节点on绑定事件失效的解决
    免费获取SSL证书/一键安装SSL证书/https加密
    在github上面创建新的分支
    github-新建文件夹
    如何删除github上的某个文件夹
    FTP连接虚拟主机响应220 Welcome to www.net.cn FTP service. (解决的一个问题)
    两种方法上传本地文件到github(转)
    Windows下如何将一个文件夹通过Git上传到GitHub上(转)
    利用Github免费搭建个人主页(转)
    关于阿里ICON矢量图(SVG)上传问题.
  • 原文地址:https://www.cnblogs.com/lcl15/p/6230564.html
Copyright © 2011-2022 走看看