iPhone的颠倒界面

时间:2009-08-18 10:48:33

标签: iphone objective-c

我希望有一个完全颠倒的界面。我不是说它应该根据手机的方向改变。我的意思是它应该是颠倒的(UIInterfaceOrientationPortraitUpsideDown)。一个按钮应该能够再次'正确'。相同的按钮应该将所有内容都颠倒过来。

实现这一目标的最佳方式是什么?

3 个答案:

答案 0 :(得分:2)

在根视图的图层上设置transform属性。类似的东西:

bool upsideDown = ...
float degrees = upsideDown ? 180.0f : 0.0f;
NSNumber* radians = [NSNumber numberWithFloat:degrees * M_PI / 180.0f];
[rootView.layer setValue:radians forKeyPath:@"transform.rotation.z"];

(当然,您可以轻松优化从度数转换为弧度的小公式,因为您只使用0.0和pi。包括它只是为了清晰。)

答案 1 :(得分:2)

如果您想要一个倒置的界面,方向无关紧要。实质上,将旋转仿射变换应用于您使用的视图,例如:

window.transform = CGAffineTransformRotate(window.transform,M_PI);

如果你有一个状态栏,那里将需要一些补偿。再次应用它然后“旋转”它。

答案 2 :(得分:1)