CCLabelTTF 垂直对齐 (Cocos2D)

Posted

技术标签:

【中文标题】CCLabelTTF 垂直对齐 (Cocos2D)【英文标题】:CCLabelTTF Vertically Align (Cocos2D) 【发布时间】:2012-03-31 02:12:57 【问题描述】:
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 屏幕(忽略点,它们只是用于 *** 格式)。我如何让它动态地将文本集中在自身的中心?因此,例如在这种情况下,我希望“Center Me”成为居中的内容。如果我的字符串只包含“垂直”,我希望它是居中的,等等......

【问题讨论】:

【参考方案1】:

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

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

第二种可能的解决方案是根据标签boundingBox大小直接将其位置设置为上

【讨论】:

anchorPoint 实际上在 CC2D 0.98+ 中使用点(而不是像素),所以我不得不将其更改为:label.anchorPoint = ccp(0.5, 0.5);。默认情况下,锚点已经是0.5, 0.5,但是通过在指定新创建的字符串后重置它,它可以正确地重新定位它。 =]

以上是关于CCLabelTTF 垂直对齐 (Cocos2D)的主要内容,如果未能解决你的问题,请参考以下文章

保存高分cocos2d

Cocos2d 3.0 更新分数

css如何使div里面的文字垂直对齐

text 只需一行SCSS就可以垂直和水平对齐或只是垂直对齐,它同时支持两者。

text 只需一行SCSS就可以垂直和水平对齐或只是垂直对齐,它同时支持两者。

左对齐的水平堆栈视图和顶部对齐的垂直堆栈视图