pushviewcontroller 动画缓慢/断断续续 [英] pushviewcontroller animation is slow/choppy
问题描述
我推送一个 ViewController
包含的视图不多,UIScrollView
里面包含 10 个视图,我有一个单例 ViewController
并推送它一次又一次地没有释放和分配ViewController
,所以我在viewDidLoad()
和viewWillAppear()
中做的所有事情,但是动画缓慢且断断续续,可能是什么?
I push a ViewController
which contains not too many views, UIScrollView
which contains 10 views inside, I have a singleton ViewController
and push it again and again without releasing and allocation again the ViewController
, so all the things I do it in viewDidLoad()
, and viewWillAppear()
, but the animation is slow and choppy, what it could be?
推荐答案
我遇到了一个问题,当 UIViewController A 执行 pushViewController 来推送 UIViewController B 时,推送动画会在大约 25% 处停止,停止,然后将 B 滑入剩下的路.
I had a problem where when UIViewController A did a pushViewController to push UIViewController B, the push animation would stop at about 25%, halt, and then slide B in the rest of the way.
这在 iOS 6 上没有发生,但是当我开始使用 iOS 7 作为 XCode 5 中的基础 SDK 时,这开始发生.
This DID NOT happen on iOS 6, but as soon as I started using iOS 7 as the base SDK in XCode 5, this started happening.
修复是视图控制器 B 没有在其根视图上设置 backgroundColor(根视图是 viewController.view 的值,通常在 loadView 中设置).在该根视图的初始值设定项中设置 backgroundColor 解决了该问题.
The fix is that view controller B did not have a backgroundColor set on its root view (the root view is the one that is the value of viewController.view, that you typically set in loadView). Setting a backgroundColor in that root view's initializer fixed the problem.
我设法解决了这个问题:
I managed to fix this as follows:
// CASE 1: The root view for a UIViewController subclass that had a halting animation
- (id)initWithFrame:(CGRect)frame
{
if ((self = [super initWithFrame:frame])) {
// Do some initialization ...
// self.backgroundColor was NOT being set
// and animation in pushViewController was slow and stopped at 25% and paused
}
return self;
}
// CASE 2: HERE IS THE FIX
- (id)initWithFrame:(CGRect)frame
{
if ((self = [super initWithFrame:frame])) {
// Do some initialization ...
// Set self.backgroundColor for the fix!
// and animation in pushViewController is no longer slow and and no longer stopped at 25% and paused
self.backgroundColor = [UIColor whiteColor]; // or some other non-clear color
}
return self;
}
这篇关于pushviewcontroller 动画缓慢/断断续续的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!