2013-01-09 165 views
2

讓我先告訴你,我的要求,計算數量

我都存儲在一個字符串變量strings說海峽,

NSString *[email protected]"multiple strings"; 

接下來我想指定上面的字符串將適合的寬度,例如width = 350和fontsize = 16;現在我怎麼才能知道在給定的寬度= 350和字體大小= 15的情況下,文本將佔據多少行(我的意思是行數)

+1

你的意思是如果它是用文字包裝,打破空白? – danh

+0

@ danh..no,只是想知道lines.my的意圖是找到動態的高度與給定的寬度和字體大小... –

+0

NSString提供了一個方法sizeWithFont:你可以在其中傳遞一個字體(如[UIFont systemFontOfSize :16]),但是這會告訴你單線的高度。除非我們知道線條的構成,否則線條的數量不明確。 – danh

回答

2

您可以找到繪製所需的大小(因此高度)一個使用UIStringDrawing.h中的方法之一的字符串。

CGSize maximumSize = CGSizeMake(350, CGFLOAT_MAX); 
UIFont *font = [UIFont systemFontOfSize:16]; 
CGSize size = [str sizeWithFont:font constrainedToSize:maximumSize lineBreakMode:NSLineBreakByWordWrapping]; 

在這個例子中,使用maximumSize用於CGFloat最大可能高度(有效無窮大),和350像素的寬度:繪製成的350像素約束寬度時,該方法會給你的大小。這實際上意味着「通過將寬度限制爲350px來給我這個文本的大小」。

+0

這是什麼350代表?...它會做什麼...我認爲它的約束寬度,但約束寬度的使用是什麼?請清除我的疑問... –

+1

@PKCoder回答編輯明確解釋'constrainedToSize:'參數。 –

+0

...好的,謝謝尼克,會回到你的... :) –