这主要针对是 cell上label自适应高度,

let lineSpaceKey = "lineSpaceKey"

extension UILabel{

    var lineSpace :CGFloat?{

        set{

            objc_setAssociatedObject(self, lineSpaceKey, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)

        }

        get{

            return (objc_getAssociatedObject(self, lineSpaceKey) as? CGFloat)

        }

    }

    //label 内容行数  这的size 是label 的宽和高  lineSpace 是行间距

    func textNumLinesWithHeight(size:CGSize) -> CGFloat {

        let paragraphStyle = NSMutableParagraphStyle()

        paragraphStyle.lineBreakMode = self.lineBreakMode

        paragraphStyle.alignment = self.textAlignment

        

        if self.lineSpace == nil {

            self.lineSpace = 0

        }

        paragraphStyle.lineSpacing = self.lineSpace!

        let attributes = [NSFontAttributeName : self.font,

            NSParagraphStyleAttributeName : paragraphStyle];

        let contentSize = self.text!.boundingRectWithSize(size, options: [.UsesFontLeading,.UsesLineFragmentOrigin] , attributes: attributes, context: nil).size

        let labelNumber = contentSize.height / self.font.lineHeight

        return labelNumber

    }

}

转载于:https://www.cnblogs.com/GongxiFaCai/p/5609790.html

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐