3

我有一个带有动态文本的 CCLabelTTF。假设它的最大尺寸为 200,200。我创建它:

CCLabelTTF * label = [CCLabelTTF labelWithString:@"Hello!" dimensions:CGSizeMake(200,200) alignment:UITextAlignmentLeft lineBreakMode:UILineBreakModeWordWrap fontName:@"Helvetica" fontSize:15];

这很好用。

但是我必须在下面放一些东西,因此我需要知道文字的高度。我试过 label.texture.contentSize、label.contentSize。他们都是200,200。

我可以在这里做什么?我正在使用 cocos2d 1.x

4

2 回答 2

6

你可以使用 NSString 的 sizeWithFont 方法。

NSString *hello = @"Hello!"
UIFont *font = ...
CGSize *textSize = [hello sizeWithFont:font constrainedToSize:CGSizeMake(200, 200) lineBreakMode:UILineBreakModeWordWrap];

这应该告诉您文本的确切大小。

于 2012-09-21T02:02:09.883 回答
1
UIFont * font = [UIFont fontWithName:@"HelveticaNeue" size:15];
CGSize realSize = [message sizeWithFont:font constrainedToSize:CGSizeMake(210, 200) lineBreakMode:UILineBreakModeWordWrap];    
label = [CCLabelTTF labelWithString:message dimensions:realSize alignment:UITextAlignmentCenter lineBreakMode:UILineBreakModeWordWrap fontName:@"HelveticaNeue" fontSize:15];

这就是我根据@Ben 回答最终做的事情。它完美地工作!

于 2012-09-22T22:08:09.303 回答