您的位置:首页 > 移动开发 > IOS开发

IOS 动画不执行了

2014-01-02 15:51 239 查看
分享我碰到的一个bug及解决办法:

背景:我做一个二维码扫描的动画,就是一根“线”,不断上下移动

上代码:

//扫描动画
- (void)scanAnimation
{
_sliceView.frame = CGRectMake((SCREEN_WIDTH-kOverFrameWidth)/2, kSliceViewY_top, kOverFrameWidth-3, kSliceHeight);
[UIView animateWithDuration:1.5f delay:0 options:UIViewAnimationOptionRepeat|UIViewAnimationOptionCurveLinear|UIViewAnimationOptionAllowUserInteraction animations:^{
_sliceView.frame = CGRectMake(_sliceView.frame.origin.x,kSliceViewY_bottom,_sliceView.frame.size.width,_sliceView.frame.size.height);
} completion:^(BOOL finished) {

}];
}


bug:

1.进入后台回来,“线”不动了。

解决:  

- (void)viewDidLoad
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(scanAnimation) name:UIApplicationDidBecomeActiveNotification object:nil];
}
 - (void)viewDidAppear:(BOOL)animated
{
[self scanAnimation];
}

注意:从后台回来不会调用viewDidAppear等相关方法。所以我想到的就是用通知。

2.从动画界面进入另一个界面,返回后动画停止

解决:

- (void)viewDidAppear:(BOOL)animated
{
[self scanAnimation];
}
注意:重新调用动画的方法一定要放在viewDidAppear方法中,放在viewWillAppear中不会起作用的(血的教训啊!!)
希望能帮助遇到同类问题的童靴们~~~~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息