我正试图在屏幕上制作标签动画,但我似乎无法让它正常工作。目前,它将视图设置为其他视图的动画。
此外,我不能在需要时“停止”动画。我在音乐播放器中使用它来滚动UIView上的曲目名称,当我点击Next或Prev时,它必须停止动画中期并重新开始。
- (void)startAnimation {
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:10];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:)];
CGRect frame = trackName.frame;
frame.origin.x = -50;
trackName.frame = frame;
[UIView commitAnimations];
}
- (void)animationDidStop:(id)sender {
NSLog(@"animationDidStop");
CGRect frame = trackName.frame;
frame.origin.x = 194;
trackName.frame = frame;
[self startAnimation];
}
答案 0 :(得分:1)
我假设您要做的是为标签设置动画,使其向左移动50个像素。如果是这样,您需要更改行:
frame.origin.x = -50
到
frame.origin.x -= 50;
问题是您正在将帧的新原点设置为-50,即距离视图左侧50像素。相反,你需要从它的当前位置减去50个像素,使其相对于它的位置移动50个像素。