1

何が問題なのか理解できません。助けていただければ幸いです。

UIlabelマーキーのようにアニメーション化されていUIView AnimationWithDurationます...(このコードを機能させる必要があります。他の場所で何かをフォークすることはできません。マーキー担当者を提供しないでください。)

このアニメーション中に新しいテキストを設定しましたが、残念ながら前のテキストは置き換えられず、上に描かれています。最終的に、2 つのテキストが互いに重なって表示されます。テキストを再度設定しようとすると、テキストが消去されるか、3 番目の線が描画される可能性があります。

おそらくスレッドの問題だと思って次のコードを試しましたが、何もしません

@synchronized (self.songLabel.text) {
    self.songLabel.text = nil;
    self.songLabel.text = [trackItems objectForKey:@"TrackName"];
}

ゲッターとセッターをアトミックに設定しましsongLabelたが、どちらも役に立ちません。

何を試せばいいのかわからない… 助けてくれてありがとう!

編集:アニメーションを処理するコードは次のとおりです

- (void)animateSongLabel
{

    if (!self.player.rate) {

        [UIView animateWithDuration:.5 animations:^{

            self.songLabel.left = 25.f;
        }];

        return;
    }

    if (!self.canAnimateLabel) {
        return;
    }
    self.animateLabel = NO;
    [UIView animateWithDuration:.25 delay:0. options:UIViewAnimationOptionCurveLinear animations:^{

         self.songLabel.left -= 15.f;

    } completion:^(BOOL finished) {

        self.animateLabel = YES;

        if (self.songLabel.right < -10.f) {

            self.songLabel.left = 320.f;
        }
        [self animateSongLabel];
    }];
}
4

0 に答える 0