哪种定制 UI 方式更好?
Which customized UI way is better?
我几乎是程序化的新手 UI。
我一直在为我的项目创建一些自定义 UI 组件,但是当我查看其他人的项目时,我发现我创建 UI 组件的方式与他们的不同。
代码完全相同,但方式不同。
这两个代码有什么区别?
func makeLabel(withAlignment alignment: NSTextAlignment,
withFontSize fontSize: CGFloat) -> UILabel {
let label = UILabel()
label.textAlignment = alignment
label.font = UIFont.systemFont(ofSize: fontSize,
weight: .bold)
label.textColor = .label
label.adjustsFontSizeToFitWidth = true
label.minimumScaleFactor = 0.9
label.lineBreakMode = .byTruncatingTail
label.translatesAutoresizingMaskIntoConstraints = false
return label
}
init(textAlignment: NSTextAlignment,
fontSize: CGFloat) {
super.init(frame: .zero)
self.textAlignment = textAlignment
self.font = UIFont.systemFont(ofSize: fontSize,
weight: .bold)
}
private func configure() {
self.textColor = .label
self.adjustsFontSizeToFitWidth = true
self.minimumScaleFactor = 0.9
self.lineBreakMode = .byTruncatingTail
self.translatesAutoresizingMaskIntoConstraints = false
}
在我的 VC 中调用它们也是一样的。
所以问题是哪种方式更适合我创建自定义 UIs?
这两种技术有什么优缺点吗?
第一个只是一个帮手,你创建了一个 Return 一个 UILabel
的函数
第二个是CustomView,它可以包含一个标签,但也可以由多个元素组成,例如图像+标签
在自定义视图中,您还可以覆盖 drawRect 等方法或添加一些其他组件:例如
var isSelected {
didSet {
//do something
}
}
我几乎是程序化的新手 UI。
我一直在为我的项目创建一些自定义 UI 组件,但是当我查看其他人的项目时,我发现我创建 UI 组件的方式与他们的不同。
代码完全相同,但方式不同。
这两个代码有什么区别?
func makeLabel(withAlignment alignment: NSTextAlignment,
withFontSize fontSize: CGFloat) -> UILabel {
let label = UILabel()
label.textAlignment = alignment
label.font = UIFont.systemFont(ofSize: fontSize,
weight: .bold)
label.textColor = .label
label.adjustsFontSizeToFitWidth = true
label.minimumScaleFactor = 0.9
label.lineBreakMode = .byTruncatingTail
label.translatesAutoresizingMaskIntoConstraints = false
return label
}
init(textAlignment: NSTextAlignment,
fontSize: CGFloat) {
super.init(frame: .zero)
self.textAlignment = textAlignment
self.font = UIFont.systemFont(ofSize: fontSize,
weight: .bold)
}
private func configure() {
self.textColor = .label
self.adjustsFontSizeToFitWidth = true
self.minimumScaleFactor = 0.9
self.lineBreakMode = .byTruncatingTail
self.translatesAutoresizingMaskIntoConstraints = false
}
在我的 VC 中调用它们也是一样的。
所以问题是哪种方式更适合我创建自定义 UIs? 这两种技术有什么优缺点吗?
第一个只是一个帮手,你创建了一个 Return 一个 UILabel
的函数第二个是CustomView,它可以包含一个标签,但也可以由多个元素组成,例如图像+标签
在自定义视图中,您还可以覆盖 drawRect 等方法或添加一些其他组件:例如
var isSelected {
didSet {
//do something
}
}