如果您能帮助我,我无法理解出了什么问题,那就太好了!
我有一个像字幕一样的UIlabel
动画UIView AnimationWithDuration
......(我需要让这段代码工作,我不能在其他地方分叉一些东西,请不要提供字幕代表。)
在这个动画中我设置了一个新的文本,不幸的是前一个不是替换而是绘制了。我最终得到了两个相互重叠的文本。如果我再次尝试设置文本,它可能会被清理,或者它可能会绘制第三条线。
我尝试了以下代码,认为这可能是线程问题,但它没有做任何事情
@synchronized (self.songLabel.text) {
self.songLabel.text = nil;
self.songLabel.text = [trackItems objectForKey:@"TrackName"];
}
我已将我的songLabel
getter 和 setter 设置为原子的,它也无济于事。
我不知道该尝试什么...谢谢您的帮助!
编辑:这是处理动画的代码
- (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];
}];
}