0

UIPopoverController を表示するときに、表示ビューのすべてのコントロールが無効になっているわけではないことがわかりました。具体的には、ナビゲーション バーのボタン (「戻る」など) は引き続き選択可能です。私の意見では、これは欠陥です。ビュー スタックがその背後にポップしている間、ポップオーバーが画面に残ります。

まあ、少なくともこれはself.aboutPopoverController.passthroughViews = nil、プレゼンテーションの直後に使用して修正できます。

これを除いて、ビューのコンテンツを一番上にスクロールするように設定されていることが多いステータス バーは無効になりません。

最終的な結果として、ポップオーバーを表示し、(バックグラウンドで) ビューをスクロールして、ポップオーバーの小さな矢印/タブが元のタッチ ポイントと整列しないようにすることができます。

誰でもこの動作に光を当てることができますか? それは機能ですか、それともバグですか?回避策はありますか?

4

1 に答える 1

1

簡単な回避策は次のとおりです。

UIPopoverControllerセットUIScrollViewのプロパティscrollsToTopを に表示する直前NO。このように、ユーザーがステータスバーをタップすると、scrollView はスクロールしません。

ポップオーバーが完了したら、scrollsToTop 機能を再度有効にすることができます。

UIScrollView のドキュメントは次のとおりです。

scrollsToTop
A Boolean value that controls whether the scroll-to-top gesture is enabled.

@property(nonatomic) BOOL scrollsToTop

Discussion
The scroll-to-top gesture is a tap on the status bar. When a user makes this gesture, 
the system asks the scroll view closest to the status bar to scroll to the top. 
If that scroll view has scrollsToTop set to NO, its delegate returns NO from
scrollViewShouldScrollToTop:, or the content is already at the top, nothing happens.

お役に立てれば!

于 2013-10-18T23:29:37.627 に答える