iOS文本高度計算

文本高度計算:此方法適用於根據不一樣的文字長短,設置與文字相同的size編程

//****************************************************************************************************************//字體

//***************************************************************************************************************//spa

//*********************************************計算文本高度 ********************************************************//code

//***************************************************************************************************************//圖片

//**********************************************************************笨笨編程 **********************************//ip

//***************************************************************************************************************//ci

 

/**開發

*  param: string:須要計算的文本text文檔

*  param: font :文本顯示的字體大小string

*  param: maxSize:文本顯示的範圍

*  return: 文本佔用的真實寬高

*/

- (CGSize)sizeWithString:(NSString *)string font:(UIFont *)font maxSize:(CGSize)maxSize{

    NSDictionary *dict = @{NSFontAttributeName : font};

    CGSize size = [string boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:dict context:nil].size;

    return size;

}

//****************************************************************************************************************//

- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context NS_AVAILABLE_IOS(7_0);

//size: 用於計算文本繪製時佔據的矩形塊。平常使用常常是寬度設置爲一個固定值,而後高度爲CGFLOAT_MAX(無限大的一個數值)
//options:文本繪製時附加選項,能夠附加使用。
這裏是官方API文檔

typedef NS_OPTIONS(NSInteger, NSStringDrawingOptions) {

    NSStringDrawingTruncatesLastVisibleLine = 1 << 5, // 若是文本內容超出指定的矩形限制,文本將被截去並在最後一個字符後加上省略號。(Truncates and adds the ellipsis character to the last visible line if the text doesn't fit into the bounds specified. Ignored if NSStringDrawingUsesLineFragmentOrigin is not also set.)

    NSStringDrawingUsesLineFragmentOrigin = 1 << 0, // 該選項被忽略(The specified origin is the line fragment origin, not the base line origin)

    NSStringDrawingUsesFontLeading = 1 << 1, // 計算行高時使用行間距,字體大小+行間距 = 行高(Uses the font leading for calculating line heights)

    NSStringDrawingUsesDeviceMetrics = 1 << 3, //使用圖片上的文字大小代替印刷上的文字大小(Uses image glyph bounds instead of typographic bounds)

} NS_ENUM_AVAILABLE_IOS(6_0);

 //attributes:文字的屬性。必須設置字體的大小,注意這時是字典下的UIFont類型的。 //comtext: context上下文,常設爲nil。

//******************************************參見iOS開發章魚哥*********************************************************//

 //**************************************http://www.jianshu.com/p/155f9065f6d1****************************************//

相關文章
相關標籤/搜索