0

数年前にオリジナルのiPhone用にデザインされたアプリがあります。私はそれを採用しました、そしてそれがiPhone4とiPadで動作するようにそれを更新することを探しています。かなりの数のコードが含まれているため、サンプルを適切な場所から取得していない可能性があるため、サンプルを投稿するのは困難です(また、irrlichtを使用し、コードの大部分はc ++であり、いくつかのobj-cクラス(appDelegateなど)が含まれています)。

iPhoneバージョンは正常に動作し、xcodeシミュレーターではiPadバージョンが正常に動作します。ただし、デバイス自体では、iPadバージョンは正しくレンダリングされません。

このアプリはすべてのバージョンで横向きですが、iPadではすべてを正しい方向に向けていますが、描画領域はまだ縦向きを使用しているようです。これがスクリーンショットです(緑色の四角は無視してください。そこにあった情報をいくつか隠しました):http://i.imgur.com/50CKA.png

右側が空白であることがわかるように、幅が768に制限されているようで、画像は画面の上部を超えています(1024で途切れるのではないかと思います)。iPhoneのバージョンが正常に機能することを考えると、私が見落としていた可能性のある変更が必要なIBの設定はありますか?

編集1:

UIView *contentView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
        contentView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
        self.view = contentView;
        self.view.autoresizesSubviews = YES;
4

1 に答える 1

0

自分で修正しました-残念ながら、私が最初にそれを「テスト」していたとき、私は手に入れるipadを持っていなかったので、誰かが非常に遅い各ビルドをテストしていました。1つを手に入れて、答えをすぐに見つけました。

UIScreen* mainscr = [UIScreen mainScreen];

//original width and height
w = mainscr.currentMode.size.width;
h = mainscr.currentMode.size.height;


//fixed method
if((int)mainscr.currentMode.size.width % 1024 == 0)
    {
        w = mainscr.currentMode.size.width;
        h = mainscr.currentMode.size.height;
        //correct for ipad
    }
    else 
    {
        h = mainscr.currentMode.size.width;
        w = mainscr.currentMode.size.height;
        //correct for iphone
    }

どういうわけか私はiPadの向きを変えるようにそれを言わなければなりませんか?理由はわかりませんが、コメントしてくれたすべての人の助けに感謝します。

于 2012-05-15T23:53:32.920 に答える