关于iOS7中UIView效果失效问题的解决

来源:互联网 发布:网络里认识了你歌曲 编辑:程序博客网 时间:2024/05/28 14:56

近期想做一个跑马灯的效果,于是写出了如下的跑马灯效果的代码。。。但是调试发现,在iOS6下动画是可以执行的,但是在iOS7下动画并不执行,没有达到预期的效果。

[_scrollLabel sizeToFit];    CGRect frame = _scrollLabel.frame;    frame.origin.x = 320;    _scrollLabel.frame = frame;    [UIView setAnimationsEnabled:YES];    [UIView beginAnimations:@"testAnimation" context:NULL];    [UIView setAnimationDuration:10.f];    [UIView setAnimationCurve:UIViewAnimationCurveLinear];    [UIView setAnimationDelegate:self];    [UIView setAnimationRepeatAutoreverses:NO];    [UIView setAnimationRepeatCount:999999];    frame = _scrollLabel.frame;    frame.origin.x = -frame.size.width;    NSLog(@"frame orgin:%f",frame.origin.x);    _scrollLabel.frame = frame;    [UIView commitAnimations];
然后在网上查了各种资料,都没有解决。。。最终发现,我的这个视图控制器是present模态化视图,在iOS7下模态化出来的视图UIView就出现问题了。。。果断把present换成了push。。。但是push又达不到prensent的效果,于是又模仿present,在push视图中实现present动画。代码如下:

一、push

MCLotteryListViewController *list = [[MCLotteryListViewController alloc]init];    //list.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;//    [self presentViewController:list animated:YES completion:^{//        //    }];    [UIView  beginAnimations:nil context:NULL];    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];    [UIView setAnimationDuration:0.75];    [self.navigationController pushViewController:list animated:NO];    [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.navigationController.view cache:NO];    [UIView commitAnimations];
二、pop

[UIView  beginAnimations:nil context:NULL];    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];    [UIView setAnimationDuration:0.75];    [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.navigationController.view cache:NO];    [UIView commitAnimations];        [UIView beginAnimations:nil context:NULL];    [UIView setAnimationDelay:0.375];    [self.navigationController popViewControllerAnimated:NO];    [UIView commitAnimations];
转载请注明,错误请指正!

1 0