通过获取NSSting的文本宽度来设置CCLabelTTF的宽度不能正常工作?

时间:2013-02-21 20:26:56

标签: cocos2d-iphone

我是一名iphone游戏开发者。现在我正在开发一个儿童书籍应用程序。为此,我需要改变cclabel的颜色,用一个声音来逐字改变背景中的文字。使其作为初始过程

    NSString *pstring1 = @"The moon is a big eye";
    int ix = 600,iy = 300;
    NSArray *str1 = [pstring1 componentsSeparatedByString:@" "];
    NSLog(@"str1 %@",str1);

    for(NSString* st in str1)
    {
    CCLOG(@"STRING IS %@ POSITION IS %d",st,ix);
     CGFloat wid= 0;   
    CGFloat ss = [st sizeWithFont: [UIFont systemFontOfSize:25]].width;
    wid = ss+(ss/10);
    CCLabelTTF * labels = [CCLabelTTF labelWithString:st fontName:@"Marker Felt" fontSize:25 ];
    [labels setPosition:CGPointMake(ix, iy)];

    [labels setColor:ccBLUE];
    ix+=wid+5; 

    [self addChild:labels];

例如,我用白色空格分隔了一个字符串,并将其添加到NSArray中。在for循环中,我使用sizeWithFont逐个获取数组中字符串的文本宽度,并将其添加为CGFloat值。我正在为数组中的每个单词创建cclabel,并根据单词的大小增加宽度大小数组中的宽度保存在CGFloat中。问题是每个cclabel之间有更多的空白区域或者它们彼此合并。我不知道我是正确还是错误输出看起来像这个http://screencast.com/t/p8Rj8GKZ。请帮我解决这个问题。如果这个问题被整理出来意味着我将使用计时器并更改每个cclabel的颜色以显示单词到单词的颜色变化效果。

1 个答案:

答案 0 :(得分:1)

最后我解决了上面提到的问题

我刚刚将标签的内容大小设置为零,现在一个单词与另一个单词之间的所有不需要的空白区域都消失了

[labels setContentSize:CGSizeZero];