1

私はコントローラを持っています、それをActionBarViewControllerと呼びます(それはUIViewControllerを継承します)。ビューがあり、それをActionBarViewと呼びます。そのビューにはcontentViewactionBarの 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: プログラムで作成するすべてのビューとコントローラー。

4

0 に答える 0