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

2018-12-25  本文已影响0人  顾不上回头的奔跑者

先上效果图


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

上一篇 下一篇

猜你喜欢

热点阅读