在iOS10上,snapshotView在完全呈现视图之前拍摄快照

我完全透明的桌子和导航控制器.因此,在推送新视图控制器时,动画被破坏了.因此,我添加了自己的自定义推送转换,该转换获取一个视图控制器的快照并为其设置动画.

这不再适用于iOS10. snapshotView(afterScreenUpdates:true)返回纯白色的视图.我也尝试通过图形上下文使用旧方法获取快照,但它也不起作用.

如何确保在snapshotView之前加载推送到导航控制器的视图?或者有更好的方法解决这个问题吗?不幸的是,这对我来说是一个突破性的变化.

解决方法

我想说这是严格的iPhone 7模拟器和iPhone 7模拟器问题.该问题不会出现在真实设备上.如果您需要为模拟器修复此问题,我可以在Pod: https://github.com/NewAmsterdamLabs/ZOZolaZoomTransition/中找到解决方法
- (UIImage *)zo_snapshot {
    UIGraphicsBeginImageContextWithOptions(self.bounds.size,self.opaque,[UIScreen mainScreen].scale);
    CGContextRef context = UIGraphicsGetCurrentContext();
    [self.layer renderInContext:context];
    UIImage *snapshot = UIGraphicsGetimageFromCurrentimageContext();
    UIGraphicsEndImageContext();
    return snapshot;
}

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...