我使用 Storyboard在 Xcode 4.2 中创建了一个新的选项卡式应用程序项目。 在 viewDidLoad 中,我添加以下代码:
[UIView animateWithDuration:30
delay:0
options:UIViewAnimationOptionRepeat | UIViewAnimationOptionCurveLinear
animations:^(void) {
CGRect imageViewFrame = self.scrollingImageView.frame;
imageViewFrame.origin.x = CGRectGetWidth(imageViewFrame) / -2;
self.scrollingImageView.frame = imageViewFrame;
} completion:nil];
然后我创建关联的 UIImageView 属性并将其连接到 IB 中。
@property (nonatomic, strong) IBOutlet UIImageView *scrollingImageView;
我将图像放入 imageview,在模拟器或我的 iPod Touch 中运行它,然后我看到了滚动。
但是,当我选择第二个选项卡然后返回到第一个选项卡时,动画似乎立即完成并且我无法让它重新启动,即使我将上面的内容放入 viewWillAppear。我已经搜索了很多答案,但无法解决。
如有任何帮助,我们将不胜感激。
最佳答案
看来您正在处理的问题是特定于选项卡式栏 Controller 的,而不是 Storyboard或特定动画。问题是,当您切换到另一个选项卡时,动画会停止,而当您返回第一个选项卡时,动画不会继续。
在 viewWillAppear
中再次订购动画不起作用(正如您提到的),但如果您首先在 viewWillDisappear
中删除动画,然后在 中再次订购它viewWillAppear
应该有效。例如
- (void)viewWillDisappear:(BOOL)animated
{
[self.view.layer removeAllAnimations]; // or whatever you need to use to remove your specific animation
}
注意:动画删除代码应该在 viewWillDisappear
中,而不是在 viewWillUnload
中,因为切换标签时不会调用 viewWillUnload
。
关于ios - 选择第二个选项卡会停止第一个选项卡中的动画并且不会重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9074092/