鏈式調用原理

常規寫法:

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
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。