Iphone CCLabelTTF垂直对齐(Cocos2D)

Iphone CCLabelTTF垂直对齐(Cocos2D),iphone,ios,cocos2d-iphone,text-formatting,Iphone,Ios,Cocos2d Iphone,Text Formatting,所以我创建了上面的标签并将其添加到我的图层中。由于dimensions参数,文本确实正确换行,但只有第一行文本垂直居中(例如,只有第一行文本在半屏幕标记上方正好有50%的字符高度,在半屏幕标记下方正好有50%的字符高度: CCLabelTTF *label = [CCLabelTTF labelWithString:@"Vertically Center Me About Myself" dimensions:CGSizeMake(100, 300) alignment:UITextAlignm

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

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];

其中------表示1/2屏幕(忽略点,它们只是用于堆栈溢出格式化)。如何使文本围绕其自身的中心动态居中?例如,在本例中,我希望“居中我”是居中的。如果我的字符串仅包含“垂直”,我希望它居中,等等…

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

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

第二种可能的解决方案是根据标签边界框大小直接将其位置设置为上方,尝试在第一个字符串后写入:

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

第二种可能的解决方案是根据标签边界框大小直接将其位置设置在上方,anchorPoint实际上使用CC2D 0.98+中的点(而不是像素),因此我必须将其更改为:
label.anchorPoint=ccp(0.5,0.5)默认情况下,锚定点已经是
0.5,0.5
,但是通过在指定新创建的字符串后重置它,它会正确地重新定位它。=]anchorPoint实际上使用CC2D 0.98+中的点(而不是像素),所以我不得不将其更改为:
label.anchorPoint=ccp(0.5,0.5);
。默认情况下,锚点已经是
0.5,0.5
,但通过在指定新创建的字符串后重置锚点,锚点将正确地重新定位。=]