2

属性付きテキストを使用して UILabel で char by char アニメーションを作成しようとしています

//set attributed string
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@"Yaba daba doo"];
[attributedString addAttribute:NSKernAttributeName value:@1 range:NSMakeRange(0, [attributedString length])];

//set animation
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0),
    ^{
        [self animateShowText:[attributedString string] characterDelay:0.1 withCurrentLabel:self.myLabel];
        [self.myLabel setAttributedText:attributedString];
    });

最後のメッセージがテキストに属性を設定することを望んでいましたが、解決策が見つかりませんでした。ここで、文字列の通常のスタイルをアニメーション化しようとしましたが、ラベルに属性付きの文字列が表示されましたが、機能しませんでした。どのように属性を保持し、テキストをアニメーション化しますか?

4

1 に答える 1

2

メインスレッドでのみビューを更新する必要があります。performSelectorOnMainThread:withObject:ブロック内でこれを行うために 使用します。

[self.myLabel performSelector: @selector(setAttributedText:) withObject: attributedString];

animate show text がビューを更新するメソッドを呼び出す場合は、同じことを行うか、代わりに使用する必要がありますdispatch_sync(この時点では、GCD を使用しないでください)。

于 2013-07-25T19:12:17.383 に答える