我正在尝试使用静态初始值设定项创建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()