CCLabelTTF垂直对齐(Cocos2D)

时间:2012-03-31 02:12:57

标签: iphone ios cocos2d-iphone text-formatting

CCLabelTTF *label = [CCLabelTTF labelWithString:@"Vertically Center Me About Myself" dimensions:CGSizeMake(100, 300) alignment:UITextAlignmentCenter lineBreakMode:UILineBreakModeWordWrap fontName:@"Helvetica" fontSize:20];
label.position = ccp(screenwidth/2, screenheight/2);
[layer addChild:label];

所以我创建了上面的标签并将其添加到我的图层。由于dimensions参数,文本确实正确包装,但只有文本的第一行垂直居中(例如,只有第一行文本恰好有50%的字符高于半屏标记的高度,以及半屏标记下方字符高度的正好50%:

.
.
---Vertically---
   Center Me
  About Myself

-----表示1/2屏幕(忽略点,它们只是用于stackoverflow格式化)。如何让它动态地将文本集中在任何自身的中心?因此,例如在这种情况下,我希望“中心我”成为中心。如果我的字符串只包含'垂直',我希望它会居中等等......

1 个答案:

答案 0 :(得分:1)

尝试在第一个字符串后写:

label.anchorPoint = ccp([label boundingBox].size.width / 2, [label boundingBox].size.height / 2);

第二种可能的解决方案是根据标签boundingBox大小

直接设置其位置