【问题标题】:UIPickerView get darker on screenshotUIPickerView 在屏幕截图上变暗
【发布时间】:2015-05-04 12:39:15
【问题描述】:

在某些情况下我不得不更改导航,并且由于过渡的复杂性,我在过渡完成之前进行了绘画和屏幕截图。在几乎情况下,这工作得很好,但有一点让我感到不安。我有一个带有两个选择器视图的视图控制器:

但是屏幕截图在这个 VC 上效果不佳。我明白了:

两种情况下的截图代码如下:

- (UIImage *)takeScreenshot {
    CALayer *layer = [[UIApplication sharedApplication] keyWindow].layer;
    UIGraphicsBeginImageContext(layer.frame.size);
    [layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
    return screenshot;
}

有人知道怎么会这样吗?

【问题讨论】:

  • [图层 renderInContext:UIGraphicsGetCurrentContext()];删除此行并尝试。
  • 您的解决方案无法按预期工作。如果我删除该行,则屏幕截图不会显示导航,也不会显示其他视图等。
  • 你做错了..我会检查它等等。
  • 如果你把你的截图保存为PNG文件并在图像编辑器中打开它,它是不是很暗?还是只有在您的应用程序中使用它时它才会变暗(这意味着您显示不正确而不是捕获不正确)。
  • 如果我保存图像并使用编辑器打开,图像会变暗。

标签: ios screenshot uipickerview


【解决方案1】:

您可以尝试使用不同的方法进行屏幕截图。 Apple 在 iOS 7 中引入了一些快速查看屏幕截图的方法。

UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, 0);
[self.view drawViewHierarchyInRect:self.view.bounds afterScreenUpdates:YES];
UIImage *im = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

Here 是 Apple 的回答,提供了有关这两种方法如何工作的更多信息。虽然各个用户遇到了一些 pb 并被建议使用旧的快照视图方式,但我从来没有遇到过任何问题。也许他们从那时起就修好了。

【讨论】:

  • 完美。我必须将self.view 更改为[[UIApplication sharedApplication] keyWindow] 才能捕获NavigationBar,否则它不会出现。但效果很好。
【解决方案2】:
UIGraphicsBeginImageContext(self.window.bounds.size);

[self.window.layer renderInContext:UIGraphicsGetCurrentContext()];

UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

NSData * data = UIImagePNGRepresentation(image);

[data writeToFile:@"image.png" atomically:YES];

如果您有视网膜显示器,则将第一行替换为以下代码:-

if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
UIGraphicsBeginImageContextWithOptions(self.window.bounds.size, NO,[UIScreen mainScreen].scale);

else

UIGraphicsBeginImageContext(self.window.bounds.size);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-11
    • 2014-02-25
    • 2010-12-09
    • 1970-01-01
    相关资源
    最近更新 更多