25

次のコードを使用して、カスタムビューのタブバーで満たされたフッター付きの UITableView があります。

- (CGFloat)tableView:(UITableView *)tableView
heightForFooterInSection:(NSInteger)section {
    //differ between your sections or if you
    //have only on section return a static value
    return 49;
}

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {

    if(footerView == nil) {
        //allocate the view if it doesn't exist yet
        footerView  = [[UIView alloc] init];
        [footerView addSubview:self.tabBarView];
    }

    //return the view for the footer
    return footerView;
}

画面を埋めるのに必要な行よりもテーブルの行が少ない場合を除いて、これはうまく機能しています。これにより、フッターがあるためにテーブルが空の行を作成しなくなるため、フッターが画面を上に移動します。

それで、カスタムフッターを画面の下部にロックする方法、または以前のようにtableViewに空の行を作成させる方法を知っている人はいますか?

ありがとう!

ガレス

4

2 に答える 2

4

残念ながら、ビュー階層のトリック以外に、これを行う簡単な方法はないと思います。UITableView の contentSize がフレーム サイズより小さい場合、フッター ビューを self.view に割り当て、手動で配置します。UITableView の contentSize がフレーム サイズより大きい場合は、viewForFooterInSection を使用します。これが明確でない場合、またはこれを行う方法のサンプル コードを確認したい場合はお知らせください。

于 2013-08-04T21:30:15.363 に答える
1

uitableview コントローラーにも同じ問題があります。ウィンドウにビューを追加し、viewWillDisappear でこのオブジェクトを削除することでこれを解決しました。

私の解決策リンク

于 2014-10-30T09:00:20.537 に答える