4

ウィンドウ内でビューを切り替えています。向きが時々ズレます。

いずれかのウィンドウ内で、ツールバー ボタンに関連付ける必要があるポップオーバーを表示しようとすると、画面上の位置に表示されます。デバイスの向きを物理的に変更すると、ポップオーバーが正しい位置に再描画されます。もう一度元に戻すと、正しい位置に描画されます。ポップオーバーを閉じて再度表示しようとすると、再び間違った場所に表示されます。

提案をいただければ幸いです。

4

2 に答える 2

1

ここで、ビューからポップオーバーコントローラーを表示するときは、最初に現在の方向を確認する必要があります。方向に基づいて、フレームを選択し、現在のビューからポップオーバーコントローラーを開くことができます。あなたは次のようにすることができます:

    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];
    }
于 2011-06-20T18:16:24.330 に答える
1

問題は解決しましたが、理由はわかりません。私は Apple 開発者サポートの問題をオープンしました。彼らは私のコードを調べて、文書化されていないガイドラインをいくつか見つけました。

1 つは、切り替えられるビュー間で画面の向きを混在させないことです。それらすべてが一貫して横向きかどうか、縦向きかどうかをサポートするようにしてください。

彼らはまた、一度に 1 つのコントローラーだけが画面を管理するべきだとも言いました。

この問題は、iPad の iOS4.2 で発生しました。これがもう当てはまるかどうかはわかりません。

于 2011-11-23T14:14:11.530 に答える