簡單的求文字佔用的高度、範圍 boundingRectWithSize sizeWithAttributes
阿新 • • 發佈:2019-02-07
NSString * str = @"大法師客戶機卡會受到了開發大大是開啟或罰款兩居室的回覆啊卡死的劃分空間暗紅色的kajsdhflakhsdklfjasdkjfkasdhflaksdf"; // 1.sizeWithAttributes 計算佔用的寬高 // 使用此種方式:寬度會無限的增加 CGSize size1 = [str sizeWithAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:17]}]; // 結果 (CGSize) size1 = (width = 933.9375, height = 20.287109375) // 2.boundingRectWithSize<span id="transmark"></span>:options:attributes:context: CGRect size2 = [str boundingRectWithSize:CGSizeMake(200, MAXFLOAT) options:NSStringDrawingUsesFontLeading|NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingTruncatesLastVisibleLine attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:17]} context:nil]; // 結果 :(CGRect) size2 = (origin = (x = 0, y = 0), size = (width = 199.70849609375, height = 121.72265625)) // 【注意】 以上採用的options 為 // NSStringDrawingUsesFontLeading //行間距計算 // NSStringDrawingUsesLineFragmentOrigin // 每行為矩形框計算 // NSStringDrawingTruncatesLastVisibleLine // 最後一行省略符號
如果不理解 NSStringDrawingOptions 的使用,請參考 NSStringDrawingOptions每個選項的使用和意義