我有一个基于UINavigationController的应用程序,其中包含多个视图。
当我通过调用导航控制器上的下面的方法返回到以前的视图控制器时,我看到了一个缓慢的转换。我之所以能在我的视图控制器的viewWillAppear中想到它的唯一原因--我正在向它过渡--我正在做一些花费了一秒钟多一点时间的繁重工作。在这种情况下,有没有办法更快地过渡?
[self.navigationController popViewControllerAnimated:YES];编辑:--几件重要的事情:
发布于 2015-08-12 08:26:44
我知道我也有点晚了,但我有一个非常类似的问题,我有一个标题图像占了整个宽度,当弹出它会对被弹出的视图造成令人讨厌的判断效果。
我的解决办法很简单。我只需要确保顶级视图裁剪其子视图。因为我的视图是在Interface中设计的,所以它只是一个选择外部视图容器(一个边框很厚)和检查“剪辑子视图”选项的问题。
发布于 2014-10-20 07:14:22
我可能会迟到,但对于来到这里的谷歌人来说:如果您在离开视图控制器时遇到了不稳定的用户体验,那么请尝试添加以下内容:
#import <QuartzCore/QuartzCore.h>
...
-(void)viewWillDisappear:(BOOL)animated{
self.view.layer.shouldRasterize = YES;
self.view.layer.rasterizationScale = [UIScreen mainScreen].scale;
}它会使你的层变平,所以它更容易加工。
编辑:或者如果你真的绝望了:
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, 0);
[self.view drawViewHierarchyInRect:self.view.bounds afterScreenUpdates:YES];
UIImage *snapshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageView *fakeBackground = [[UIImageView alloc] initWithImage:snapshot];
[[self.view subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)];
[self.view addSubview:fakeBackground];发布于 2014-01-29 19:06:58
两件事..。
1)你在使用模拟器吗?你在经营小牛吗?我升级的时候出现了严重的性能问题。
2)当涉及到视图控制器时.我尽量避免使用viewWillAppear。重写init函数,并在其中执行大部分初始化。那样的话,它就会开始得更早,不会在任何时候被调用。只有每次控制器出现时都需要调用的东西才应该放在那里,而该方法应该是精益的。
https://stackoverflow.com/questions/21440131
复制相似问题