Swift里更改UILabel 文字垂直方向的距离

在项目中创建了一个高度为64的UILabel,准备将其放在页面的顶部用于显示网络访问时的错误提示信息,设置了Label的textAlignment后,效果如下图。

Swift里更改UILabel 文字垂直方向的距离_第1张图片
screen.png

效果并不很理想,如果能把文字在垂直方向上往下挪一挪就完美了。通过子类重写父类的方法完成了文本区域的下移。

代码如下

import UIKit

class VCVerticalOffsetLabel: UILabel {
    
    override func drawText(in rect: CGRect) {
        
        let actualRect:CGRect = self.textRect(forBounds: rect, limitedToNumberOfLines: numberOfLines)
        
        super.drawText(in: actualRect)
        
    }
    
    override func textRect(forBounds bounds: CGRect, limitedToNumberOfLines numberOfLines: Int) -> CGRect {
        
        var textRect:CGRect = super.textRect(forBounds: bounds, limitedToNumberOfLines: numberOfLines)
        
        textRect.origin.y = (bounds.origin.y + bounds.size.height - textRect.size.height) * 0.5 + 10.0
        
        return textRect
    }
    
}

你可能感兴趣的:(Swift里更改UILabel 文字垂直方向的距离)