1

私は本当に奇妙な向きの問題を抱えています。ナビゲーションコントローラーの下に一連のビューコントローラーがあります。それらの1つは任意の方向をとることができます。オリエンテーションを離れるときは、setOrientationを使用する必要があります。面白いのは、次のページへの遷移が発生するときに回転が行われることです。これは、単一の場合を除いて、通常は問題ではありません。UIDeviceOrientationPortraitUpsideDownから通常の場合、トップマウントされたすべてのアイテムがページの約8分の1に移行します。

私がそれを修正できると思う3つの方法があります:

  1. どういうわけか、setOrientationをpushViewController呼び出しから分離します(したがって、新しいビューを反転する必要はありません)
  2. より良い方法でデバイスの上部に固定されるようにアイテムを設定します(チェックしたところ、そうなっているように見えます)
  3. ViewDidLoadメソッドの要素のYディメンションをリセットしますが、それは間違っているようです。

新しいビューをスタックコードにプッシュします。

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait]; 

ResultSelect_ViewController *resultSelect = [[ResultSelect_ViewController alloc] initWithNibName:@"ResultSelect" bundle:nil];
[self.navigationController pushViewController:resultSelect animated:YES];

シミュレーターで縦向きの動作を逆さまにテストできないのは奇妙だと思う人はいますか?

4

3 に答える 3

2

注意: Apple は静的 (場合によっては動的) アナライザーの使用を開始し、プライベート メソッド(例: )を使用するアプリがsetOrientation:ストアに入るのをブロックします。先週、私の友人に起こりました。

iPhone OS 3.0 に対してビルドしてみましたか? のみに依存していshouldRotateToInterfaceOrientation:ますか? 動作は (2.x での実装と比較して) 修正されたようで、少なくとも私にとっては機能しています。

于 2009-11-19T23:54:49.423 に答える
1

通常、逆さまの向きはサポートされません。これは標準的な Apple アプリの動作のようであり、理にかなっています。逆さまのケースは実際には役に立たず、ユーザーを混乱させる可能性があります。

逆さまのケースをめくると、サブビューがメイン ビューを上下に移動するという同様の問題がありました。逆さまのサポートを停止しただけで、基本的に問題は解決しました。

于 2009-11-18T19:05:10.263 に答える
0

逆さまから縦向きに回転するときの回転バグを回避する方法は、そうしないことです。代わりに、途中で停止するように 2 回回転します (たとえば、UIDeviceOrientationLandscapeRight)。タイミングの問題は、スリープを使用するのではなくdidRotateFromInterfaceOrientation、その時点で 2 番目のローテーション (または次のビューへのプッシュ) を実装して実行することです。

于 2009-11-26T00:40:22.580 に答える