0

私がランドスケープモードで開発しているiphoneアプリは、ひどく動揺しています。比較のために縦向きにすると、その向きではるかにスムーズに動作するように見えます。マップビュー、いくつかのボタン、いくつかのラベル、およびいくつかのクォーツ描画など、プロセス集約的だと思うことを行っていませんが、基本的なクォーツアニメーションの中には、非常にひどく遅くなるものがあります。

ランドスケープモードがポートレートと比較してひどく障害があるかどうか、および/またはそうであれば、ランドスケープアプリを作成するためのより良い方法があるかどうかを誰かが知っていますか?90度に変換されたルート回転ビューを使用し、すべてのサブビューをそれにアタッチするだけです。

ありがとう。

4

3 に答える 3

2

レンダリングのパフォーマンスに関しては、横向きと縦向きの間に実際の違いはないはずです。変換を使用してメイン ビューを 90 度回転させていますか? iPhone OS 2.1 の時点で、メイン ビューをランドスケープで開始するために手動で変換を適用する必要はなくなったと思います。強制的に横向きにするために必要だったのは、このデリゲート メソッドをアプリケーション デリゲート内に配置することだけでした。

- (void)application:(UIApplication *)application willChangeStatusBarOrientation:(UIInterfaceOrientation)newStatusBarOrientation duration:(NSTimeInterval)duration;
{
    // This prevents the view from autorotating to portrait in the simulator
    if ((newStatusBarOrientation == UIInterfaceOrientationPortrait) || (newStatusBarOrientation == UIInterfaceOrientationPortraitUpsideDown))
        [application setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:NO];
}

そして私のルートビューコントローラで以下:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{
    return ( (interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight));
}
于 2010-01-14T13:57:16.340 に答える
1

おそらく、非整数ピクセル位置 ( 0.76 など) になるいくつかの除算を行う場合があります。整数でないピクセル位置があると、パフォーマンスに問題がありました。(これらが接続されているかどうかは完全にはわかりませんが、役立つかもしれません)

于 2010-01-14T13:20:18.693 に答える
0

皆様のご提案とご協力に感謝いたします。ビューコントローラーの自動回転設定を設定するというブラッドの提案を試してみましたが、非常にうまく機能しました。それが失速の大きな要因だったと思います。

于 2010-01-15T00:58:25.453 に答える