swift基础

Swift与OC比较之NSStringDrawingOption

2018-08-22  本文已影响0人  莽原奔马668

用NSStringDrawingOptions计算label的高度

先来看OC

//字体大小配置
NSDictionary *attribute = @{NSFontAttributeName: [UIFont systemFontOfSize:fontSize]};
//计算size
CGSize size = [text boundingRectWithSize:CGSizeMake(width, 0) options:NSStringDrawingUsesFontLeading | NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesDeviceMetrics attributes:attribute context:nil].size;
//label高度
CGFloat height = size.height;

再来看Swift

//先将String类型转成NSString类型
let text = str as NSString
//字体大小配置
let attribute = [kCTFontAttributeName: UIFont.systemFont(ofSize: fontsize)]
//计算size
let size = tempStr.boundingRect(with: CGSize.init(width: width, height: 0), options: NSStringDrawingOptions(rawValue: NSStringDrawingOptions.RawValue(UInt8(NSStringDrawingOptions.usesFontLeading.rawValue) | UInt8(NSStringDrawingOptions.usesDeviceMetrics.rawValue) | UInt8(NSStringDrawingOptions.usesLineFragmentOrigin.rawValue))), attributes: attribute as [NSAttributedStringKey : Any], context: nil).size
//label高度
let height = size.height

上一篇 下一篇

猜你喜欢

热点阅读