2011-09-30 83 views
2

我正在使用animateWithDuration方法为具有歌词的textView设置动画效果,以便在歌曲播放时滚动播放歌曲。它工作正常,但是我为歌曲添加了一个暂停按钮,显然暂停后动画继续滚动。有没有办法暂停这个。我看着Apple的课程参考资料,看到有几个延迟方法,但是这些方法是在动画开始之前使用的。所以只是好奇,如果有一种方式来暂停/重新启动动画时,用户暂停/取消保留歌曲。提前致谢。有没有办法暂停animateWithDuration一旦启动?

回答

0

您可以启动移动你的TextView与持续电流/位置显示一个新的动画:0.0F(按下暂停按钮时),将取消/跳过前面的动画;-)

+0

我想过htis,但它只会在确定正在动画的textView的CGPoint的方法时才起作用,所以我可以暂停该点的动画,一旦暂停并在该点重新开始时再次开始播放。到目前为止,我还没有找到一个。有没有办法找到正在动画的textView中最顶级的CGPoint? –

+0

我试过下面的代码无济于事...... CGPoint scrollPoint = textView.bounds.origin; 也试过 ' CGPoint scrollPoint = textView.contentOffset;} {0}动画:^ [UIView animateWithDuration:0动画:^(void){[textView setContentOffset:scrollPoint];}];也试过[self.view.layer removeAllAnimations];但我怀疑,因为我在UIView上调用动画,要求在图层上移除不会做任何事情... 任何其他建议将不胜感激。 –

+1

@CABearsfan如果我是你,我会用NSTimer代替UIAnimatin。更新NSTimer运行循环中的位置:scrollPoint = CGPointMake(lastPoint.x,lastPoint.y + 1); lastPoint = scrollPoint;所以你可以阻止它,当你想要;-) – PeakJi

0

你可以计算动画开始以来经过的时间,并计算暂停时的偏移量。 虽然应该有更简单的解决方案。 也许NSString drawAtPoint在drawRect中,使用一个定时器重复调用drawRect来更新位置。

相关问题