2013-01-09 125 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

...好的,谢谢尼克,会回到你的... :) –