首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CCLabelTTF多行标签不工作

CCLabelTTF多行标签不工作
EN

Stack Overflow用户
提问于 2013-10-01 15:36:02
回答 2查看 2.5K关注 0票数 0

我试图在cocos2d 1.0中使用CCLabelTTF创建一个多行标签。我试过我遇到的例子,但似乎都没有用。这是我有的东西

代码语言:javascript
复制
CCLabelTTF *storeLabelHeading = [CCLabelTTF labelWithString:@"Here is a really long string that I want to wrap"
                                                     dimensions: CGSizeMake(200,0)
                                                      alignment: NSTextAlignmentCenter
                                                  lineBreakMode: NSLineBreakByWordWrapping
                                                       fontName:@"Marker Felt" fontSize: 24];

storeLabelHeading.color = ccc3(0,0,0);
[storeLabelHeading setAnchorPoint:ccp(0,0)];

storeLabelHeading.position = ccp(screenSize.width * 0.35f,
                                       screenSize.height * 0.85);
[self addChild:storeLabelHeading z:kStoreLayer+10];

我尝试过各种不同的维度。如果我使用CGSizeMake(0,0),那么标签将显示,但没有包装(我认为这是预期的)。但是任何其他的值都不会显示出来。我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-01 17:50:49

根据您的问题,我在cocos2d 2.0中得到了相同的结果,没有单词包装。然而,我把它做得很好:

代码语言:javascript
复制
    CCTexture2D *tex =[ [[CCTexture2D alloc] 
            initWithString:@"Here is a really long string that I want to wrap wrap wrap"
                dimensions:CGSizeMake(120, 120)
                hAlignment:kCCTextAlignmentCenter  
                vAlignment:kCCVerticalTextAlignmentCenter
             lineBreakMode:kCCLineBreakModeWordWrap
                  fontName:@"Marker Felt"
                  fontSize:24 ] autorelease];

    CCSprite *spr = [CCSprite spriteWithTexture:tex];
    [self addChild:spr];
    spr.position=ccp(kScreenWidth/2,kScreenHeight/2);

奇怪的是,在通过CCLabelTTF ctor时,它失败了。然而,CCLabelTTF使用它来创建标签。这可能与管道中某个地方的垂直对准不当有关。

ps :这也有效。

代码语言:javascript
复制
    CCLabelTTF *storeLabelHeading = [CCLabelTTF labelWithString:@"Here is a really long string that I want to wrap"
                                                         dimensions: CGSizeMake(120,120)
                                                          hAlignment: kCCTextAlignmentLeft
                                                      lineBreakMode: kCCLineBreakModeWordWrap
                                                           fontName:@"Marker Felt" fontSize: 24];
    storeLabelHeading.verticalAlignment=kCCVerticalTextAlignmentCenter;

    storeLabelHeading.color = ccc3(0,0,0);
    [storeLabelHeading setAnchorPoint:ccp(0,0)];

    storeLabelHeading.position = ccp(kScreenWidth * 0.35f,
                                           kScreenHeight * 0.85);
    [self addChild:storeLabelHeading z:1+10];

    [storeLabelHeading setString:@"Here is a really long string that I want to wrap wrap wrap"];

在将垂直对齐设置为中间“未中断”CCLabelTTF ctor后设置字符串。

票数 3
EN

Stack Overflow用户

发布于 2013-10-01 15:47:08

你也需要给出标签的高度尺寸。现在你要通过200,0,尝试在一个非零的高度。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19120369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档