1

私は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 を使用して配列内の文字列のテキスト幅を 1 つずつ取得し、それを CGFloat 値として追加しました。そして、配列内の各単語の cclabel を作成し、単語のCGFloat に保存される配列の幅。問題は、各 cclabel 間に余分な空白があるか、互いに結合していることです。正しいか間違っているかわかりません。出力はhttp://screencast.com/t/p8Rj8GKZのようになります。この問題を解決するのを手伝ってください。これが問題である場合は、タイマーを使用して各 cclabel の色を変更し、単語から単語への色の変更効果を表示することを意味します。

4

1 に答える 1

1

最後に、上記の問題を修正しました

ラベルのコンテンツサイズをゼロに設定したところ、ある単語と別の単語の間の不要な空白がすべて消えました

[ラベル setContentSize:CGSizeZero];

于 2013-02-24T06:13:06.233 に答える