ios - 选择第二个选项卡会停止第一个选项卡中的动画并且不会重新启动

标签 ios animation tabbar

我使用 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/

相关文章:

java - ItemAnimator如何安排动画一个接一个地开始

c++ - WinApi 在每一帧中绘图

ios - UITableView 开始更新

iphone - 将 iOS GPS 变量输入 JSON/oAUTH 请求

ios - 更聪明的边界检测方案-ios

javascript - HTML5 Geolocation - 在 iOS 上一直不工作

java - 如何在 Ludo 棋盘中使用数组索引

ios - 更改 TabBar mask 颜色(不透明)

ios - 无法使用 tabbar swift 在当前上下文中显示 Controller

ios - 如何关闭滑动菜单并链接回选定的选项卡?