为 UIView 创建静态初始值设定项



我正在尝试使用静态初始值设定项创建UIView的扩展(例如new)。在我的旧 Objective-C 项目中,我将使用以下实现创建一个类别:

+ (instancetype)autoLayout {
    UIView *view = [self new];
    view.translatesAutoresizingMaskIntoConstraints = NO;
    return view;
}

但是我找不到快速执行此操作的方法。我想创建一个普通的类函数:

class func autolayout() {
    let view = self.init()
    view.translatesAutoresizingMaskIntoConstraints = false
}

.. 但是返回类型应该是什么?

在类函数上使用扩展时,您应该使用 Self,因为这意味着对象是自我类型。

Self可用于类函数和协议。

//: Playground - noun: a place where people can play
import UIKit
extension UIView {
  class func autoLayout() -> Self {
    let view = self.init()
    view.translatesAutoresizingMaskIntoConstraints = false
    return view
  }
}
let view = UIView.autoLayout()

最新更新