美文网首页
链式调用原理

链式调用原理

作者: Future_3e45 | 来源:发表于2019-08-05 11:53 被阅读0次

常规写法:

let subview = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
subview.backgroundColor = .red
subview.layer.masksToBounds = true
subview.layer.cornerRadius = 8
subview.isUserInteractionEnabled = true
self.addSubview(subview)

链式调用:

self.view.addSubview(
                    UIView()
                    .frame(CGRect(x: 0, y: 0, width: 100, height: 100))
                    .backgroundColor(.red)
                    .masksToBounds(true)
                    .cornerRadius(8)
                    .isUserInteractionEnabled(true)
                    )

实现原理:

调用方法之后返回自己,以实现链式调用

具体代码:

UIViewExtension.swift

extension UIView {
    public func frame(_ frame: CGRect) -> Self {
        self.frame = frame
        return self
    }
    
    public func isUserInteractionEnabled(_ isUserInteractionEnabled: Bool) -> Self {
        self.isUserInteractionEnabled = isUserInteractionEnabled
        return self
    }
    
    public func backgroundColor(_ backgroundColor: UIColor) -> Self {
        self.backgroundColor = backgroundColor
        return self
    }
}

相关文章

  • 链式调用原理

    常规写法: 链式调用: 实现原理: 调用方法之后返回自己,以实现链式调用 具体代码:

  • 自制jquery-第一篇

    1, jquery.js脚本文件 2,实现链式调用的原理 非链式调用:$xxx.addClass("active"...

  • JavaScript链式调用实例

    这篇文章主要介绍了JavaScript链式调用,结合实例形式分析了javascript链式调用的相关原理、实现方法...

  • swift重温笔记(可选链式调用)

    使用可选链式调用代替强制展开 为可选链式调用定义模型类 通过可选链式调用访问属性 通过可选链式调用调用方法 通过可...

  • jquery高级

    1.jquery可以链式编程 原理:是对象中的方法返回该对象,然后可以继续调用 在jquery中有些方法是破坏链式...

  • jq的链式调用原理

    原文链接:https://www.cnblogs.com/songqun/p/6017951.html (1).链...

  • Promise链式调用的原理

    Promise链式调用, 不仅中工作中经常用到, 面试中也有时会被问到, 如果搞懂它, 对我们工作面试都会有帮助....

  • 你一定不知道的链式调用新姿势

    如何链式调用Java静态方法? 链式调用 首先需要提一下最近几年在开发界大的链式调用,链式调用非常利于编写,更利于...

  • 你一定不知道的Java链式调用新姿势

    链式调用 首先需要提一下最近几年在开发界大的链式调用,链式调用非常利于编写,更利于阅读,那么,什么是链式调用呢,为...

  • iOS 链式编程初探

    链式编程 Masonry 打点调用原理之前一直好奇Masonry 框架是怎样实现的,可以一直打点调用,语法使用起来...

网友评论

      本文标题:链式调用原理

      本文链接:https://www.haomeiwen.com/subject/fiwpdctx.html