【问题标题】:drawViewHierachyInRect draws iPad at wrong orientationdrawViewHierachyInRect 以错误的方向绘制 iPad
【发布时间】:2014-02-05 19:16:34
【问题描述】:

我正在尝试截取我的 iPad 应用程序的屏幕截图,并创建一个 UIImage,然后我可以对其进行模糊处理并做一些有趣的事情。我正在使用以下代码截取屏幕截图,它运行良好:

- (UIImage *)convertViewToImage
{
    UIGraphicsBeginImageContext(self.bounds.size);
    [self drawViewHierarchyInRect:self.bounds afterScreenUpdates:YES];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return image;
}

但是,我的应用仅支持横向,并且出来的屏幕截图向左旋转 90 度(纵向)。我在我的UIWindow 上调用了这个方法,我知道UIWindow 使用不同的坐标系,但我不太清楚如何旋转UIImage。我在这里阅读了几个类似的问题并尝试了他们的解决方案(使用initWithCGImage:scale:orientation,并重新绘制图像),但由于它是全屏 iPad 图像,如果我旋转它,它似乎会保留实际的肖像尺寸,但将旋转后的图像拉伸到其中。

简而言之,上面的方法给了我我需要的东西,但是是 768x1024,而不是 1024x768。我需要将它向左旋转 90 度,与在 Preview、Photoshop 等中的旋转完全相同。

【问题讨论】:

  • 你能在根视图控制器的视图上调用它吗?
  • 我当然可以!完美运行,非常感谢。想要提交答案以便我标记它吗?

标签: ios objective-c uiview ios7 core-graphics


【解决方案1】:

您可以改为在根视图控制器的视图上调用它。它与窗口具有相同的内容,但具有设备的方向。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    • 2013-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    相关资源
    最近更新 更多