zoukankan      html  css  js  c++  java
  • Swift 语法糖then

    then是一个swift初始化库,只有80几行的代码库,确可以让初始化变得很优雅。

    1.使用then初始化AnyObject,这里以初始化控件为例

    lazy var label = UILabel().then({
            $0.text = "label"
            $0.textColor = .blue
        })
    let redView = UIView().then { (make) in
            make.backgroundColor = .red
            make.frame = CGRect(x: 50, y: 50,  100, height: 100)
        }
    let button = UIButton().then ({
                $0.setTitle("点我", for: .normal)
                $0.setTitleColor(.red, for: .normal)
            })

    2.thenSnapKit一起使用的方式

    let button1 = UIButton().then { (make) in
                make.setTitle("登录", for: .normal)
                make.setTitleColor(.black, for: .normal)
                view.addSubview(make)
                
                make.snp.makeConstraints({ (make) in
                    make.top.left.right.equalTo(0)
                    make.height.equalTo(100)
                })
            }
    let button2 = UIButton().then({
            $0.setTitle("登录", for: .normal)
            $0.setTitleColor(.black, for: .normal)
            view.addSubview($0)
            
            $0.snp.makeConstraints({
                $0.top.equalTo(button1.snp.bottom)
                $0.left.right.equalTo(0)
                $0.height.equalTo(50)
            })
          })

    3.其他用法

    let newFrame = oldFrame.with {
              $0.size.width = 200
              $0.size.height = 100
        }
        newFrame.width // 200
        newFrame.height // 100
    UserDefaults.standard.do {
            $0.set("devxoul", forKey: "username")
            $0.set("devxoul@gmail.com", forKey: "email")
            $0.synchronize()
        }
  • 相关阅读:
    java 容器
    Java容器有哪些?
    java容器---集合总结
    Java中的String,StringBuilder,StringBuffer三者的区别
    Socket心跳包机制
    JAVA实现简单的RPC框架
    redis、kafka、rabittMQ对比
    idea+maven无法自动加载jar包
    myeclipse 上安装 Maven3
    linux_开发软件安装=命令步骤
  • 原文地址:https://www.cnblogs.com/weiboyuan/p/10551744.html
Copyright © 2011-2022 走看看