1. 程式人生 > >簡單的求文字佔用的高度、範圍 boundingRectWithSize sizeWithAttributes

簡單的求文字佔用的高度、範圍 boundingRectWithSize sizeWithAttributes

    
    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每個選項的使用和意義