首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iPhone SDK:优化UIModalTransitionStyleFlipHorizontal

iPhone SDK:优化UIModalTransitionStyleFlipHorizontal
EN

Stack Overflow用户
提问于 2009-09-21 10:38:54
回答 1查看 2K关注 0票数 2

我想用非常高的性能翻转我的新ModalView,但是新的视图有很多子视图,所以翻转效果的性能非常差。实际上我是这样做的:

代码语言:javascript
复制
[controller setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[self presentModalViewController:backSideController animated:YES];

我也试过了

代码语言:javascript
复制
CATransition *transition = [CATransition animation];
transition.duration = 0.75;
[transition setType: @"flip"];
[transition setSubtype:@"fromRight"];

transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
[transition setFillMode:@"extended"];

[[self.view layer] addAnimation:transition forKey:nil];


[self.view addSubview: backSideController.view];
[CATransaction commit];

有了Core-Animation,它的运行速度会更快一些。有没有更多的方法来优化这项任务?例如,当动画停止时添加视图,并只是翻转屏幕截图,直到动画停止?

EN

回答 1

Stack Overflow用户

发布于 2012-03-15 02:40:48

在开始播放动画之前尝试访问backsideController.view。这将导致后台控制器的loadView和viewDidLoad被调用。我猜这就是您的性能优势--所有的加载和分配都会导致动画卡顿。

你不需要任何花哨的东西,你可以这样做:

代码语言:javascript
复制
if (backsideController.view == nil)
    NSLog(@"Where's my view?!");

在你的其他代码之前,如上。

我不认为拥有太多的子视图会导致性能问题;我非常确定(不需要查看您的代码或签入工具,您应该这样做!)问题在于加载和分配视图组件所需的时间。

另外,如果presentModalViewController能实现你想要的效果,我会坚持使用它。在您的第二个示例中使用所有这些额外的代码--除非功能需要这些代码--只是维护上的麻烦。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1453877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档