我正在使用以下代码截取我应用的当前视图。我在UINavigationController中嵌入了一个UIViewController。该方法在UIViewController中调用。
在屏幕截图中,即使barTintColor
设置为其他颜色,导航栏也会显示为灰色。为什么会这样?
-(UIImage *)generateScreenshot {
CGFloat scale = [[UIScreen mainScreen] scale];
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, scale);
CGContextRef context = UIGraphicsGetCurrentContext();
[self.view.layer renderInContext:context];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return viewImage;
}
答案 0 :(得分:1)
我认为问题应该是您要渲染的视图不包含导航栏,将[self.view.layer renderInContext:context];
替换为
[[appDelegate window].layer renderInContext:context];
希望它有助于...:)