私はコントローラを持っています、それをActionBarViewControllerと呼びます(それはUIViewControllerを継承します)。ビューがあり、それをActionBarViewと呼びます。そのビューにはcontentViewとactionBarの 2 つのサブビューがあります。contentViewフレームはActionBarViewフレームと同じです。actionBarフレームは、 ActionBarViewフレームの下部にある小さなフレームです。
もう1つのコントローラーがあります-ListViewController(UITableViewControllerを継承します)。ActionBarViewControllerを親として childViewController として使用します。ActionBarViewのcontentViewとして設定されたListViewControllerのビュー (tableView) 。
その結果、childViewController である UITableViewController があります。ParentViewController ビューには、追加のサブビュー - アクション バーがあります。
正しいテーブルビューのスクロールのために、アクションバーの表示/非表示でtableViewの追加のcontentInsetsを追加/削除します。ただし、ListViewController は、キーボードが表示または非表示になったときに、独自に contentInsets を追加/削除します。
最後に、キーボードが表示されている場合、tableView には複雑な下部インセット、キーボード インセット、およびアクションバー インセットがあります。
質問: この問題を解決する正しい方法を知っている機関はありますか? どの時点で UITableViewController が tableView インセットを変更しますか? それを上書きする方法は?
PS: プログラムで作成するすべてのビューとコントローラー。