代码之家  ›  专栏  ›  技术社区  ›  Zubair

与UILabel绘图/显示在屏幕上相关的方法

  •  1
  • Zubair  · 技术社区  · 7 年前

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

    2 回复  |  直到 7 年前
        1
  •  2
  •   Reinier Melian    7 年前

    您可以子类化 UILabel 在您的CustomUILabel中 layoutSubviews 方法可以设置textAlignment

    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
        }
    }
    
        2
  •  1
  •   Reinier Melian    7 年前

    首先,ViewWillAppear和ViewDidAppear不是UIView的方法,它们是UIViewController生命周期的方法。 UIView有如下方法 布局子视图 绘制(\urect:CGRect) 您可以覆盖它来为UIView提供自己的实现。 现在UILabel是UIView的一个子类,所以您可以对UILabel使用这些方法。 您要做的是创建一个自定义类,该类将从UILabel继承并重写 布局子视图 绘制(\urect:CGRect) 方法来提供所需的CGRect。然后在整个应用程序中使用该自定义标签。 下面是一个如何实现这一目标的示例。

    class CustomLabel: UILabel {
    
        override func layoutSubviews()
        {
             super.layoutSubviews()
             //change your frame here according to your needs.
        }
    }
    `
    
    推荐文章