swift 封装实现lable 文字 相对两端居中

先上效果图


swift 封装实现lable 文字 相对两端居中_第1张图片
image.png

lable 没有自带这种css很简单就能实现的文字相对两端对象的属性
所以我们只能封装一下了。

import UIKit

//写label 的扩展
extension UILabel {
    //自封装lable 两端对齐方法。
    func changeAlignmentRightAndLeft () {
        let nsstr = NSString.init(string: self.text ?? "")
        let size = CGSize(width: self.bounds.width, height: CGFloat(MAXFLOAT))
        let conSize = nsstr.boundingRect(with: size, options: NSStringDrawingOptions(rawValue: NSStringDrawingOptions.usesFontLeading.rawValue | NSStringDrawingOptions.truncatesLastVisibleLine.rawValue | NSStringDrawingOptions.usesLineFragmentOrigin.rawValue), attributes: [.font : self.font], context: nil).size
        let  cfloat = (self.frame.width-conSize.width)/CGFloat(nsstr.length-1)
        let numbC = NSNumber(value: Float(cfloat))
        let  mattStr = NSMutableAttributedString(string: nsstr as String)
        mattStr.addAttribute(kCTKernAttributeName as NSAttributedString.Key, value: numbC, range: NSMakeRange(0, nsstr.length-1))
        self.attributedText = mattStr
    }
}

然后调用一下。


image.png

ojbk

你可能感兴趣的:(swift 封装实现lable 文字 相对两端居中)