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格式化)。如何让它动态地将文本集中在任何自身的中心?因此,例如在这种情况下,我希望“中心我”成为中心。如果我的字符串只包含'垂直',我希望它会居中等等......
答案 0 :(得分:1)
尝试在第一个字符串后写:
label.anchorPoint = ccp([label boundingBox].size.width / 2, [label boundingBox].size.height / 2);
第二种可能的解决方案是根据标签boundingBox大小
直接设置其位置