In my app an image appears when user shakes the device. There are different images for landscape and portrait 开发者_C百科mode. If the iPhone's orientation is portrait or landscape, it works fine. But if it is UIDeviceOrientationFaceDown
or UIDeviceOrientationFaceUp
, the image should depend on the last orientation used, because the view is still displayed for this orientation.
How can I get the last orientation of the device?
I've figured it out! I had to check the status bar's orientation!
[UIApplication sharedApplication].statusBarOrientation
Well in the shouldAutoRotate method of a class it passes in a parameter called interfaceOrientation. This method is called anytime the device orientation changes. You can store this as a variable and the look at it at a later time to determine the last orientation.
1 = standard portrait
2 = upsidedown
3 = button right landscape
4 = button left landscape.
Also the call of self.interfaceOrientation will give you the current device orientation.
Hope this at least get you started in the correct direction.
精彩评论