无需用户知道即可强行旋转

时间:2013-02-26 03:27:28

标签: ios objective-c uiview uiimageview uiinterfaceorientation

我的应用允许用户创建发票。可以横向或纵向输入数据。

然后,用户可以保存报价并在集合视图中查看已保存的报价。与iOS上的Pages类似。图块的大小是纵向视图中设备的纵横比。

因此,如果用户保存报价,我会生成视图的屏幕截图并保存,以便可以在平铺视图中查看(如iOS页面)。如果用户在设备处于纵向时保存,则此工作正常。如果他们在风景中保存它很糟糕。

所以我的问题是,有一种方法可以在幕后旋转视图,从中生成UIImage而无需用户知道任何方向更改。

1 个答案:

答案 0 :(得分:0)

如果您正在运行旋转它的代码并在同一个线程中截取屏幕截图,那么只要在线程完成运行之前将其旋转回来,设备的屏幕就不会更新。只需旋转所有内容(或者如果您有太多的物体要旋转,请截取所有内容然后旋转该屏幕截图)现在拍摄新旋转视图的屏幕截图(或者如果您截取屏幕并旋转它不做任何事情,你已经完成了)然后将所有内容都旋转回来(除非你只是截取屏幕截图然后旋转了)...如果你需要一个可以在1个线程中运行的截图方法,请使用CGContext代码。

(为了回答你的问题,旋转总是在幕后,当你的线程结束时它只会变成场景的“前面”...所以如果你在线程结束之前将它旋转回来,用户将永远不会看到这是因为设备的屏幕在旋转两次后才会更新,然后再返回....宾果游戏!)