<分区>
<分区>
我正在尝试使用静态初始值设定项(例如 new
)创建 UIView 的扩展。在我以前的 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 类型。
Self
可用于类函数和协议(protocol)。
//: 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()
关于ios - 为 UIView 创建一个静态初始化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35378386/