Cocos2d iphone CCLabelTTF多行标签不工作

Cocos2d iphone CCLabelTTF多行标签不工作,cocos2d-iphone,multiline,cclabelttf,Cocos2d Iphone,Multiline,Cclabelttf,我正在尝试使用CCLabelTTF在cocos2d1.0中创建多行标签。我试过我遇到的例子,但似乎都不管用。这是我的 CCLabelTTF *storeLabelHeading = [CCLabelTTF labelWithString:@"Here is a really long string that I want to wrap" dimensions: CGSizeMake(200

我正在尝试使用CCLabelTTF在cocos2d1.0中创建多行标签。我试过我遇到的例子,但似乎都不管用。这是我的

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),则将显示标签,但不会显示换行符(我认为这是预期的)。但任何其他值都不会显示任何内容。我做错了什么?

您还需要给出标签的高度尺寸。现在您正在传入200,0,请尝试传入非零高度

您还需要给出标签的高度维度。现在你通过了200,0,试着通过一个非零高度

根据你的问题,我得到了与cocos2d 2.0相同的结果,没有换行符。但是,我让它正常工作:

    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 CTF时,它失败了。然而,CCLabelTTF使用它来创建标签。这可能与管道中某个地方的垂直线形处理不当有关

附言:这也行

    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“不中断”。

根据您的问题,我使用cocos2d 2.0获得相同的结果,无换行符。但是,我让它正常工作:

    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 CTF时,它失败了。然而,CCLabelTTF使用它来创建标签。这可能与管道中某个地方的垂直线形处理不当有关

附言:这也行

    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“不断裂”。

(200,0)。。。。尝试将边界框设置为适当的大小。我超调了,并将垂直对齐设置为中心。@YvesLeBorg我也试过了。将垂直尺寸设置为0应该使其没有边界。但我尝试了非零值,但这不起作用,因为CoCos2D v2.x在iOS 9设备上也存在类似问题,即使使用iOS SDK 9编译也是如此。iOS 8设备仍然会断线。更新:iOS9设备上的换行符无法与
kCCVerticalTextAlignmentCenter
配合使用,因为某种原因,当我更改为
kCCVerticalTextAlignmentTop
时,它神奇地开始工作…(200,0)。。。。尝试将边界框设置为适当的大小。我超调了,并将垂直对齐设置为中心。@YvesLeBorg我也试过了。将垂直尺寸设置为0应该使其没有边界。但我尝试了非零值,但这不起作用,因为CoCos2D v2.x在iOS 9设备上也存在类似问题,即使使用iOS SDK 9编译也是如此。iOS 8设备仍然会断线。更新:iOS9设备上的换行器无法使用
kCCVerticalTextAlignmentCenter
出于某种原因,当我更改为
kCCVerticalTextAlignmentTop
时,它神奇地开始工作……因为我使用的是cocos2d v1.0,我无法获得第二个建议,因为垂直对齐似乎没有实现。但是我确实得到了第一个建议,因为我使用的是CoCoS2DV1.0,所以我无法得到第二个建议,因为垂直对齐似乎没有实现。但我确实得到了第一个工作建议。