我有一个视图控制器,其作用是显示一个大图像,最初大小适合屏幕,用户可以平移和缩放。图像是使用手机的相机拍摄的,然后保存到设备并使用+[UIImage imageWithData:]
重新加载。
我在导航堆栈中显示控制器,但我使用了这样的渐变过渡:
SGBImageController *imageController = [[[SGBImageController alloc] init] autorelease];
imageController = <theImage>;
[imageController loadView];
[UIView transitionWithView:self.navigationController.view
duration:0.33
options:UIViewAnimationOptionAllowAnimatedContent
|UIViewAnimationOptionTransitionCrossDissolve
animations:^{
[self.navigationController pushViewController:imageController animated:NO];
} completion:nil];
淡入淡出的动画应该是流畅的,但它是生涩的,看着乐器,我看到它一直花在CA::Layer::Render
上。我添加了loadView
行以试图强制它显示其视图,但它没有帮助。在动画制作动画之前,如何使视图控制器自行绘制?
答案 0 :(得分:0)
你不应该直接调用loadView,这是操作系统处理的东西。相反,只需以任何方式引用imageController.view
即可开始加载。您可以使用委托回调或NSNotification在调用SGBImageController的viewDidLoad
方法时通知您的类,然后从那里开始动画。