ウィンドウ内でビューを切り替えています。向きが時々ズレます。
いずれかのウィンドウ内で、ツールバー ボタンに関連付ける必要があるポップオーバーを表示しようとすると、画面上の位置に表示されます。デバイスの向きを物理的に変更すると、ポップオーバーが正しい位置に再描画されます。もう一度元に戻すと、正しい位置に描画されます。ポップオーバーを閉じて再度表示しようとすると、再び間違った場所に表示されます。
提案をいただければ幸いです。
ウィンドウ内でビューを切り替えています。向きが時々ズレます。
いずれかのウィンドウ内で、ツールバー ボタンに関連付ける必要があるポップオーバーを表示しようとすると、画面上の位置に表示されます。デバイスの向きを物理的に変更すると、ポップオーバーが正しい位置に再描画されます。もう一度元に戻すと、正しい位置に描画されます。ポップオーバーを閉じて再度表示しようとすると、再び間違った場所に表示されます。
提案をいただければ幸いです。
ここで、ビューからポップオーバーコントローラーを表示するときは、最初に現在の方向を確認する必要があります。方向に基づいて、フレームを選択し、現在のビューからポップオーバーコントローラーを開くことができます。あなたは次のようにすることができます:
if(UIAppDelegate.intOrientation == 1)
{
popoverController.popoverContentSize = CGSizeMake(570, 720);
[self.popoverController presentPopoverFromRect:CGRectMake(100, 150, 570, 720) inView:self.view permittedArrowDirections:NO animated:YES];
}
else
{
popoverController.popoverContentSize = CGSizeMake(820, 500);
[self.popoverController presentPopoverFromRect:CGRectMake(102, 135, 820, 500) inView:self.view permittedArrowDirections:NO animated:YES];
}
問題は解決しましたが、理由はわかりません。私は Apple 開発者サポートの問題をオープンしました。彼らは私のコードを調べて、文書化されていないガイドラインをいくつか見つけました。
1 つは、切り替えられるビュー間で画面の向きを混在させないことです。それらすべてが一貫して横向きかどうか、縦向きかどうかをサポートするようにしてください。
彼らはまた、一度に 1 つのコントローラーだけが画面を管理するべきだとも言いました。
この問題は、iPad の iOS4.2 で発生しました。これがもう当てはまるかどうかはわかりません。