如何使动画在 Xcode 5 iOS 7 中工作?

Posted

技术标签:

【中文标题】如何使动画在 Xcode 5 iOS 7 中工作?【英文标题】:How to make animation work in Xcode 5 iOS 7? 【发布时间】:2014-06-15 19:54:40 【问题描述】:

我有一个为 ios6 开发的旧应用程序,我想通过使用适用于 iOS 7 的 Xcode 5 来发布它,除了我的动画之外一切正常。它以前可以工作,但现在没有,所以有什么修复它的想法吗?

- (void)viewDidLoad

    [super viewDidLoad];



    self.showimage.image = self.sendimage;


    [UIView animateWithDuration:18.0
                     animations:^ _moveme.Center = CGPointMake(160.0f,520.0f); 
     ] ;


我查看了一些教程和类似的问题,但我无法找到解决方案。

当我使用它时问题解决了。

    - (void)viewDidLayoutSubviews

    [super viewDidLayoutSubviews];

    [UIView animateWithDuration:18.0
                     animations:^ _moveme.Center = CGPointMake(160.0f,520.0f); 
     ] ; 

【问题讨论】:

您可能不想将该动画放入–viewDidLoad,而是放入视图生命周期的后续阶段,例如–viewDidAppear: 或更高版本,当视图已经在导航堆栈中时。 但是我希望我的动画在加载视图时开始,当我放入 viewdidapper 时它不会启动 【参考方案1】:

动画代码看起来正确。但是将它放在 viewDidLoad 中并不能保证您实际上会在屏幕上看到动画。我建议您将动画代码从viewDidLoad 移动到viewDidAppear:,或者您知道您的视图已经可见的其他方法。

【讨论】:

但是我希望我的动画在加载视图时开始,当我放入 viewdidapper 时它不会启动 - 如果是这样,你处理显示错误。如何将viewController 添加到导航堆栈? 我不明白你的问题,但让我们在 Xcode 5 之前说这个代码是 %100 工作动画总是在视图加载后播放。 如何显示viewController?关于viewControllerhandling,6 到 7 之间有很多变化。 如何显示?它在一个故事板中,它自己显示。【参考方案2】:

动画代码是正确的,应该可以正常工作。 问题是,你在-viewDidLoad 中调用它,这太早了提交动画。

-viewDidLayoutSubviews 之后保存* 来改变框架/中心。 但我建议在您的视图出现后(每次)立即调用 -viewDidAppear

【讨论】:

聊天中长时间转换后使用viewDidLayoutSubView解决的问题【参考方案3】:

试试这个:

[UIView animateWithDuration:18.0
                                 delay:0
                                 options:UIViewAnimationOptionCurveEaseOut
                                 animations:^
                                     _moveme.Center = CGPointMake(160.0f,520.0f);
                                 
                                 completion:^(BOOL finished)

                                 ];

【讨论】:

【参考方案4】:
 [UIView animateWithDuration: 18
                              delay: 0
                            options: UIViewAnimationOptionCurveEaseIn
                         animations:^

                         _moveme.Center = CGPointMake(160.0f,520.0f);

                         
                         completion:^(BOOL finished)];

【讨论】:

与我的旧代码无法正常工作,我尝试移动的 png 文件从场景中消失了。

以上是关于如何使动画在 Xcode 5 iOS 7 中工作?的主要内容,如果未能解决你的问题,请参考以下文章

如何使 UIImage 在 Objective-c 的 Xcode 中工作

如何使自定义动画师在 Kotlin 中工作(动画 alpha 属性)

如何使“SUM(amount) over”窗口函数在 MySQL 5.7 中工作?

如何让自动布局在 Xcode 中工作

UITableView 在 iOS 7 中工作,但在 iOS 8 中看起来很糟糕

如何使推送通知在 iOS 的生产环境中工作?