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")

        }

     

    }

     

  • 相关阅读:
    Android大牛
    在学习oauth时学到的
    using-jade-and-grunt-to-speed-up-html-production
    build-your-microservices-api-with-swagger
    json-web-token-apache-shiro
    WebSocket对象特性和方法
    芝麻教程
    how to export multiple SVG graphics in illustrator
    直播后台
    关于在chrome中响应不出现在XHR里的远影
  • 原文地址:https://www.cnblogs.com/lcl15/p/6230564.html
Copyright © 2011-2022 走看看