2

他の同様の質問の多くを見てきましたが、iOS6 に関連する明確な答えはありません。

UIScrollView の 2 つのサブクラス (UICollectionView と UITableView) を持つ画面を持つアプリがあります。UITableView は視覚的に UICollectionView の下/下にあり、(コレクション ビュー) は一連のボタンを提供し、UITableView はスクロール可能なデータのリストを提供します。画面全体をカバーする 1 つの主要な scrollview 派生物を持つアプリのように、ステータス バーがタッチされた場合に tableview が一番上にスクロールするように要求されました。

私たちの場合、2 つの scrollview 派生物はどちらも画面全体をカバーしておらず、UICollectionView は常に一番上までスクロールされています。

UICollectionView で scrollsToTop = NO. UITableView で scrollsToTop が YES に設定されています。ビューは、ビュー階層内の兄弟です。

他の質問で、ステータス バーに透明なビューを配置してタッチ イベントをインターセプトするという 1 つの解決策について言及されているのを見てきましたが、それにはいくつかの副作用がありました。

別の解決策は、システム通知「_UIApplicationSystemGestureStateChangedNotification」を観察することでした。これは Apple の非公開の通知のように見えますが、これを行う App Store のアクセシビリティが懸念されます。

(別のしわは、tableView の上に子ビューコントローラーのビューをオーバーレイする私のクラスのサブクラスもあり、表示する独自の UITableView があることです。この場合、元のルートクラス tableView は scrollsToTop = NO に設定され、子viewControllerのscrollsToTop = YES - もちろん機能しません)。

これを行うための一般的でAppleが承認した方法はありますか?私は文書化された通知またはそれらの線に沿った何かを望んでいましたが、見つけることができませんでした. ステータスバーに触れたときに人々が期待するように、tableView のこの単純な機能を応答できるようにしたいと思っています。

4

0 に答える 0