使用枚举创建自定义视图
Create a custom View with an enum
我正在创建一个自定义视图,它有一个枚举,可以在任何调用它的地方创建一个自定义形状。
我想从 Init
控制这个 enum
,我不确定这是最好的方法
class ReadOnlyView: UIView {
public enum Corner {
case half
case quarter
}
public var corner = Corner.half
public init(corner: Corner) {
self.corner = corner
}
var textView = UITextView().autolayoutView()
它在 init
中显示此错误
'super.init' isn't called on all paths before returning from initializer
任何人都可以帮助我实现这个枚举的最佳方法是什么,我想在调用这个视图时,它还需要设置 Corner
非常感谢
此代码应该适合您:
class ReadOnlyView: UIView {
public enum Corner {
case half
case quarter
}
public var corner: Corner
public init(corner: Corner) {
self.corner = corner
super.init(frame: .zero)
}
@available(*, unavailable)
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
要从 ReadOnlyView 创建对象,您应该这样做:
let view = ReadOnlyView(corner: .half)
我正在创建一个自定义视图,它有一个枚举,可以在任何调用它的地方创建一个自定义形状。
我想从 Init
控制这个 enum
,我不确定这是最好的方法
class ReadOnlyView: UIView {
public enum Corner {
case half
case quarter
}
public var corner = Corner.half
public init(corner: Corner) {
self.corner = corner
}
var textView = UITextView().autolayoutView()
它在 init
'super.init' isn't called on all paths before returning from initializer
任何人都可以帮助我实现这个枚举的最佳方法是什么,我想在调用这个视图时,它还需要设置 Corner
非常感谢
此代码应该适合您:
class ReadOnlyView: UIView {
public enum Corner {
case half
case quarter
}
public var corner: Corner
public init(corner: Corner) {
self.corner = corner
super.init(frame: .zero)
}
@available(*, unavailable)
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
要从 ReadOnlyView 创建对象,您应该这样做:
let view = ReadOnlyView(corner: .half)