インタフェースビルダーでUIViewControllerが設定されています。 UITableViewとヘッダーとしてUIView、フッターとして別のUIViewが含まれています。UITableViewのtableFooterViewが非常に奇妙な方法で表示されています
(、ヘッダーとフッターは、セクションヘッダとフッタされていないとして行動しているこれら2つのUIViewsに注意してください。)
ヘッダだけの偉大な働いています。インターフェイスビルダでは、UITableViewはスーパービュー(top:0、bottom:0、leading:0、trailing:0)に揃えられます。それから、headerView(UIView)をUITableViewの一番上に揃え、幅と幅を同じにしてUITableViewに合わせて配置します。 headerViewの高さは、そのサブビューに従って設定されます。 .mファイルで
、私はすべてが完璧に動作
self.myTableView.tableHeaderView = self.headerView;
を設定します。確かに、headerViewはUITableViewの一番上に固定されており、下にスクロールするとheaderViewがスクロールして画面から消えます。優れた。
私はフッターで同じことをやると思いました。実際、私は全く同じことをしましたが、私はfooterViewの一番下をUITableViewに揃えました(もちろん、2つのシェアは同じ幅と水平のセンタリングです)。私はfooterViewの高さを固定値に設定しました。正確
self.myTableView.tableFooterView = self.footerView;
そして、それは奇妙な取得する場所これは...私は一番下までスクロールすると、UIViewのfooterViewためのスペースがある、:.mファイルで
、私はこのコード行を追加しますインターフェイスビルダーで指定したfooterViewの高さに応じて設定します。
そして、スクロールアップして、スクロールの上に指を置いて、UITableViewの上を移動すると、footerViewのサブビューが上にあります! WTF!
誰もがこれを理解していますか?
すべてはInterface Builderで設定され、tableHeaderViewプロパティとtableFooterViewプロパティはviewDidLoad:メソッドで割り当てられます。
viewDidLayoutSubviewsのヘッダーとフッターのプロパティを割り当てようとしましたか? –
footerViewとheaderプロパティをviewDidLayoutSubviewsに設定すると、画面の下部にスクロールダウンすることなく(UITableViewの中央)、footerViewが表示されます。下にスクロールすると、テーブルビューのセルが上に移動します。希望する動作ではありません。 – ArthurVonBabylon