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

先上效果图


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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容