1

私はiPadアプリを作成しましたが、横向きでも縦向きでも問題なく動作します。アプリを回転させて横向きにする場合を除いて、ポップオーバーの位置が正しくありません。if擬似コードのようなステートメントを追加する方法はありますか?

if in portrait CGRect
    use size S1 location L1
else if in landscape CGRect
    use size S2 location L2

私のコード:

UIPopoverController* popover = [[UIPopoverController alloc] initWithContentViewController:TweetFeed];
[popover setDelegate:self];
[popover presentPopoverFromRect:CGRectMake(401, 401, 220, 300) inView:self.view  permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];
[popover setPopoverContentSize:CGSizeMake(320, 150)];
4

1 に答える 1

0

UIPopoverController に関する Apple のドキュメントでは、この問題に対処しています。

ポップオーバーが表示されているときにユーザーがデバイスを回転すると、ポップオーバー コントローラーはポップオーバーを非表示にし、回転の最後に再び表示します。ポップオーバー コントローラーは、ポップオーバーを適切に配置しようとしますが、場合によっては、再度表示するか、完全に非表示にする必要があります。たとえば、バー ボタン アイテムから表示される場合、ポップオーバー コントローラーは、バー ボタン アイテムの位置の変更を考慮して、ポップオーバーの位置 (場合によってはサイズ) を自動的に調整します。ただし、回転中にバー ボタン項目を削除した場合、またはビュー内のターゲット四角形からポップオーバーを表示した場合、ポップオーバー コントローラーはポップオーバーの再配置を試みません。そのような場合は、ポップオーバーを手動で非表示にするか、適切な新しい位置から再度表示する必要があります。

于 2012-10-30T19:02:30.627 に答える