iOS--計算多行文本尺寸

  
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context;
參數返回一個CGRect型數據,這個數據的size就是此時字符串顯示成文本的尺寸。  
1》size:限制尺寸,用於計算文本繪製時佔據的矩形塊,例如微博開發中size.w不超過scence.w。能夠將size.y設置爲無限大MAXFLOAT以便於顯示全部文字內容。  
2》option:文本繪製時的附加選項。  
有四種類型:spa

    1.NSStringDrawingTruncatesLastVisibleLine 3d

    2.NSStringDrawingUsesLineFragmentOrigin :整個文本將以每行組成的矩形爲單位計算整個文本的尺寸。(經常使用)  
    3. NSStringDrawingUsesFontLeading  
    4. NSStringDrawingUsesDeviceMetrics  

3》attributes:將文本UIFront存入字典傳到這裏。例如, NSDictionary *dict = @{NSFontAttributeName : font}  
4》context:context上下文。包括一些信息,例如如何調整字間距以及縮放。最終,該對象包含的信息將用於文本繪製。該參數可爲 nil 。orm

例:對象

CGFloat textMaxW = [UIScreen mainScreen].bounds.size.width;開發

/**  高度 */字符串

 CGFloat textH = [self.text boundingRectWithSize:CGSizeMake(textMaxW, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:15]} context:nil].size.height;it

相關文章
相關標籤/搜索