Swift - 计算文本高度
Posted YouXianMing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift - 计算文本高度相关的知识,希望对你有一定的参考价值。
Swift - 计算文本高度
效果
源码
// // String+StringHeight.swift // StringHeight // // Created by YouXianMing on 16/8/30. // Copyright © 2016年 YouXianMing. All rights reserved. // import UIKit extension String { /** Get the height with the string. - parameter attributes: The string attributes. - parameter fixedWidth: The fixed width. - returns: The height. */ func heightWithStringAttributes(attributes : [String : AnyObject], fixedWidth : CGFloat) -> CGFloat { guard self.characters.count > 0 && fixedWidth > 0 else { return 0 } let size = CGSizeMake(fixedWidth, CGFloat.max) let text = self as NSString let rect = text.boundingRectWithSize(size, options:.UsesLineFragmentOrigin, attributes: attributes, context:nil) return rect.size.height } /** Get the height with font. - parameter font: The font. - parameter fixedWidth: The fixed width. - returns: The height. */ func heightWithFont(font : UIFont = UIFont.systemFontOfSize(18), fixedWidth : CGFloat) -> CGFloat { guard self.characters.count > 0 && fixedWidth > 0 else { return 0 } let size = CGSizeMake(fixedWidth, CGFloat.max) let text = self as NSString let rect = text.boundingRectWithSize(size, options:.UsesLineFragmentOrigin, attributes: [NSFontAttributeName : font], context:nil) return rect.size.height } /** Get the width with the string. - parameter attributes: The string attributes. - returns: The width. */ func widthWithStringAttributes(attributes : [String : AnyObject]) -> CGFloat { guard self.characters.count > 0 else { return 0 } let size = CGSizeMake(CGFloat.max, 0) let text = self as NSString let rect = text.boundingRectWithSize(size, options:.UsesLineFragmentOrigin, attributes: attributes, context:nil) return rect.size.width } /** Get the width with the string. - parameter font: The font. - returns: The string\'s width. */ func widthWithFont(font : UIFont = UIFont.systemFontOfSize(18)) -> CGFloat { guard self.characters.count > 0 else { return 0 } let size = CGSizeMake(CGFloat.max, 0) let text = self as NSString let rect = text.boundingRectWithSize(size, options:.UsesLineFragmentOrigin, attributes: [NSFontAttributeName : font], context:nil) return rect.size.width } }
以上是关于Swift - 计算文本高度的主要内容,如果未能解决你的问题,请参考以下文章
根据 Swift 中的 UILabel 文本调整 UIView 高度
UILabel 高度如何以编程方式在 Swift 中根据文本高度
使用 swift 在不使用自动尺寸的情况下获取 tableView 中动态文本视图的高度