与UILabel绘图/出现在屏幕上相关的方法

时间:2018-02-14 07:03:08

标签: ios iphone swift alignment uilabel

我是iOS开发的新手,所以在这里帮助我,我知道iOS提供了与UIViews相关的方法,然后出现在屏幕上,ViewWillAppear& ViewDidAppear,iOS也为UILabel提供了这种类型的方法吗?我想将我的自定义对齐方式设置为我的应用中使用的所有标签,当它们出现在屏幕上时,我想使用扩展程序进行,是否可以?

2 个答案:

答案 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.
    }
}
`