在我的项目中,我有一个简单的动画,我只是从左向右移动视图。这在iOS 6中运行良好,但是当我在iOS 7中运行它没有做任何事情。有人知道为什么吗?如果动画非常简单,我该如何修复iOS 7?我的代码是:
- (void) showAnimation
{
if (IS_IPAD())
{
[UIView animateWithDuration:50.0f
delay:1
options:UIViewAnimationOptionRepeat
animations:^{
ViewBOLIVIA.frame = CGRectMake(1024,0, ViewBOLIVIA.frame.size.width, ViewBOLIVIA.frame.size.height);
} completion:nil];
}
else
{
if (IS_IPHONE_5)
{
[UIView animateWithDuration:50.0f
delay:1
options:UIViewAnimationOptionRepeat
animations:^{
ViewBOLIVIA.frame = CGRectMake(568,0, ViewBOLIVIA.frame.size.width, ViewBOLIVIA.frame.size.height);
} completion:nil];
}
else
{
[UIView animateWithDuration:50.0f
delay:1
options:UIViewAnimationOptionRepeat
animations:^{
ViewBOLIVIA.frame = CGRectMake(480,0, ViewBOLIVIA.frame.size.width, ViewBOLIVIA.frame.size.height);
} completion:nil];
}
}
}
我确实更新了,我正在使用Xcode 5和iOS 7所以任何帮助人员,你知道怎么解决这个问题吗?
答案 0 :(得分:16)
好的,我想我已经解决了。在iOS 7之前,可以在带有故事板的viewDidLoad中运行动画。如果您将动画调用移至- (void)viewDidAppear
,那么他们应该再次开始工作。因此,在您的情况下,您需要在[self showAnimation];
中致电- (void)viewDidAppear
。
- (void)viewDidAppear{
[self showAnimation];
}
答案 1 :(得分:0)
我发现在此方法中放置代码可以正常工作。
-(void)viewDidAppear:(BOOL)animated {
menuView.alpha = 0;
topLabel.alpha = 0;
[UIView animateWithDuration:1.5 animations:^{
menuView.alpha = 1;
topLabel.alpha = 1;
}];
[super viewDidAppear:animated];
}