如何使动画在 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
?关于viewController
handling,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 中工作?