在iOS(iPad / iPhone)上强制键盘和子视图方向

时间:2011-03-31 12:30:50

标签: iphone ipad uitextview eaglview

我们只是将用户输入放入我们的游戏中,以便用户可以输入电子邮件地址等。整个游戏都是G1,没有iOS UI。 EAGLView不会改变方向,它始终是纵向的,但是游戏是横向的,我们通过相机变换来处理它。

我们想要调出iOS键盘并为文本输入覆盖UITextView。 UITextView是EAGLView的子视图。显然,它和键盘以纵向显示,因为EAGLView是纵向的。

无需将EAGLView更改为横向,有什么方法可以强制UITextView和键盘以横向显示?

如果我确实将EAGLView的方向更改为横向以使其正常工作,那么性能是否有任何影响?我已多次阅读过将GL视图定向到默认纵向视图以外的任何内容都会给性能带来影响,尽管我找不到任何可靠的证据。

谢谢,

1 个答案:

答案 0 :(得分:3)

我们认为我们已经为此提出了解决方案。我们正在做两件事,一个用于键盘,另一个用于UITextView。

对于键盘,我们设置状态栏方向。设置后键盘会跟随。

[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeRight;

为了使UITextView正确定位,我们将变换应用于我们的EAGLView的子视图,在这种情况下只是UITextView,如下所示。

    CGAffineTransform aTransform = CGAffineTransformMakeRotation(M_PI / 2);
    [glView UpdateSubViewTransforms:aTransform];        

这实际上为视图添加了90度旋转。

这已在iPad和iPad上测试过。带有iOS 4.3的iPhone 4和带有iOS 3.13的iPhone 3G。