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

        }

     

    }

     

  • 相关阅读:
    网易云音乐
    喜马拉雅FM
    喜马拉雅
    169美女图片
    美女图片
    Kerberos简介及常见问题
    【转载】Spark性能优化指南——高级篇
    【转载】 Spark性能优化指南——基础篇
    Sqoop使用手册
    kafka性能基准测试
  • 原文地址:https://www.cnblogs.com/lcl15/p/6230564.html
Copyright © 2011-2022 走看看