UINavigationBar 在屏幕截图中显示为灰色
UINavigationBar appears gray in screenshot
我正在使用以下代码截取我应用程序当前视图的屏幕截图。我有一个嵌入在 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;
}
我认为问题应该是您正在渲染一个不包含导航栏的视图,请将 [self.view.layer renderInContext:context];
替换为
[[appDelegate window].layer renderInContext:context];
希望对您有所帮助...:)
我正在使用以下代码截取我应用程序当前视图的屏幕截图。我有一个嵌入在 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;
}
我认为问题应该是您正在渲染一个不包含导航栏的视图,请将 [self.view.layer renderInContext:context];
替换为
[[appDelegate window].layer renderInContext:context];
希望对您有所帮助...:)