我是iOS开发的新手,所以在这里帮助我,我知道iOS提供了与UIViews相关的方法,然后出现在屏幕上,ViewWillAppear& ViewDidAppear,iOS也为UILabel提供了这种类型的方法吗?我想将我的自定义对齐方式设置为我的应用中使用的所有标签,当它们出现在屏幕上时,我想使用扩展程序进行,是否可以?
答案 0 :(得分:2)
您可以继承layoutSubviews
并在import UIKit
@IBDesignable class LeftAlignedUILabel: UILabel {
override func awakeFromNib() {
super.awakeFromNib()
setup()
}
override func layoutSubviews()
{
super.layoutSubviews()
setup()
}
override func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()
setup()
}
func setup(){
textAlignment = .left
}
}
方法的CustomUILabel中设置textAlignment
{{1}}
答案 1 :(得分:1)
首先,ViewWillAppear和ViewDidAppear不是UIView的方法,这些是UIViewController生命周期的方法。 UIView有像 layoutSubviews 和 draw(_ rect:CGRect)这样的方法,你可以覆盖这些方法来为UIView提供你自己的实现。 现在UILabel是UIView的子类,因此您可以将这些方法用于UILabel。 你想要做的是创建一个将继承自UILabel的自定义类,并覆盖 layoutSubviews 或 draw(_ rect:CGRect)方法来提供所需的CGRect。然后在整个应用中使用该自定义标签。 以下是您如何实现这一目标的一个例子。
class CustomLabel: UILabel {
override func layoutSubviews()
{
super.layoutSubviews()
//change your frame here according to your needs.
}
}
`