ios label 自動計算行高詳解,ioslabel行高詳解

來源:互聯網
上載者:User

ios label 自動計算行高詳解,ioslabel行高詳解

在OC當中自動計算行高主要調用系統的

- (--boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(nullable NSDictionary<NSString *, id> *)attributes context:(nullable NSStringDrawingContext *)context NS_AVAILABLE(10_11, 7_0);

不同的ios系統下 相同字型的高度大小是不同的 所以不能設定具體的高度值來做限制 

解決辦法:

    label.text = @"xijoaiogioaiogioioaig";    label.numberOfLines = 2;    NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc]init];    style.maximumLineHeight = 20;    style.minimumLineHeight = 20;    CGRect rect = [label.text boundingRectWithSize:CGSizeMake(Screen_W - 125, 20*2) options: NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:_comName.font,NSParagraphStyleAttributeName:style} context:nil];    _height = rect.size.height;

 

 

 

下面是對該方法的詳解

size:label或文本顯示的寬高,通常在自動計算寬高時 若寬度固定為某一值100 則設定為CGSizeMake (100,MAXFLOAT) 若高度固定為某一值100,則設定為CGSizeMake (MAXFLOAT,100)若寬高都確定則都設定為具體值

 

options:

文本繪製時的附加選項。
有四種類型:
1.NSStringDrawingTruncatesLastVisibleLine
2.NSStringDrawingUsesLineFragmentOrigin
3.NSStringDrawingUsesFontLeading
4.NSStringDrawingUsesDeviceMetrics
通常使用NSStringDrawingUsesLineFragmentOriginNSStringDrawingUsesLineFragmentOrigin,整個文本將以每行組成的矩形為單位計算整個文本的尺寸。

NSStringDrawingUsesFontLeading則以字型間的行距(leading,行距:從一行文字的底部到另一行文字底部的間距。)來計算。

NSStringDrawingTruncatesLastVisibleLine或者NSStringDrawingUsesDeviceMetric,那麼計算文本尺寸時將以每個字或字形為單位來計算。

attributes:根本文字的哪一種屬性來進行計算

context:文字顯示的像素 一般傳nil採用系統預設

註:使用該方法時, 動態計算高度 不能設定adjustToSize(該方法限制為一行)

 

 

 



 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.