5

ユーザーがポップオーバーの外側をタップすると、却下がアニメーション化されます。その解雇アニメーションをNOに設定する方法はありますか? 私はGoogleでStackを広範囲に検索しました。

UIPopover 状態のドキュメント:

表示されている場合、ポップオーバー ウィンドウの外側をタップすると、ポップオーバーが自動的に閉じられます。ユーザーが指定されたビューを操作できるようにし、ポップオーバーを閉じないようにするために、1 つ以上のビューを passthroughViews プロパティに割り当てることができます。ポップオーバー ウィンドウ内をタップしても、ポップオーバーが自動的に閉じられるわけではありません。ビューとビュー コントローラーのコードは、ポップオーバー内のアクションとイベントを明示的に処理し、必要に応じて、dismissPopoverAnimated: メソッドを呼び出す必要があります。

dismissPopoverAnimated:メソッドを実装しましたが、NOそのメソッドを呼び出すと、すべてのケースでうまく機能します。

問題は、ユーザーがポップオーバーの外側をタップして閉じると、dismissPopoverAnimated:呼び出されないことです。

ポップオーバー ウィンドウの外側をタップすると、ポップオーバーが自動的に閉じられます。

そして、その解雇はアニメーション化されています。その解雇を制御する方法はないようです。ポップオーバーを使用して、描画アプリのカラー ピッカーを表示しています。描画するタップは、ポップオーバーのアニメーションが終了するまで登録されません。これにより、すぐには描画できず、アニメーションが完了するまで待たなければならないため、顕著な遅延が生じます。

私はそれ- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverControllerがうまくいくと思っていましたが、この方法でアニメーションプロパティを設定する方法はありません。yes または no を返すだけです。

アニメーションを NO に設定できるようにするために実装できる別の方法はありますか?

4

3 に答える 3

10

UIPopoverController を提示するビュー コントローラーで、UIPopoverControllerDelegate プロトコルに準拠し、次のデリゲート メソッドを実装します。これをテストしたところ、アニメーションなしでポップオーバーが消えます。

- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController
{
    [self.myPopoverController dismissPopoverAnimated:NO];
    return YES;
}

ポップオーバー コントローラーのデリゲートを、これを実装するビュー コントローラーに設定したことを確認してください。

于 2013-06-19T23:45:48.443 に答える