UINavigationBar在屏幕截图中显示为灰色

时间:2015-03-16 04:06:01

标签: ios objective-c iphone ipad

我正在使用以下代码截取我应用的当前视图。我在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;

}

1 个答案:

答案 0 :(得分:1)

我认为问题应该是您要渲染的视图不包含导航栏,将[self.view.layer renderInContext:context];替换为 [[appDelegate window].layer renderInContext:context]; 希望它有助于...:)