22

私のテーブルビューのフッターは、ユーザーからのツイートを表示するビューであるため、ツイートを取得するまでその高さはわかりません。FooterViewControllerメソッドを持つを作成し、次のrefreshTweetsように追加しviewDidLoadます。

FooterViewController *controller = [[FooterViewController alloc] initWithNibName...];
[[self tableView] setFooterView:[controller view]];
[controller refreshTweets];

メソッドではrefreshTweets、ツイートを読んで全高を計算し、ビュー(フッター)の高さをリセットします。

self.view.frame = newFrame;

しかし、それは意味がありません。フッターの高さは、Interface Builderで設定した高さのままです。何か足りないものや、これを行う別の方法はありますか?

ありがとう!

編集:インターフェイスビルダーでビューのサイズを十分に小さく変更できます。ツイートの高さを計算してview.frameを設定すると拡大されますが、テーブルビューでは、フッターに以前の高さ、つまり余分なスペースがあると見なされます。はテーブルビューの外にあり、テーブルを上にドラッグした場合にのみ表示されます。

4

2 に答える 2

51
myTable.tableFooterView = myFooterView;

フッタービューをテーブルに再割り当てします。テーブルは、新しいフッターがあることを認識し、フッターの適切なサイズに必要なレイアウトを再実行します。

于 2011-08-30T17:52:09.257 に答える
0

フッタービューのフレームを変更するために、ここに簡単な調整があります:-

Swiftの場合:-

func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
    return 0.5
}


func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
    let footerView = UIView()
    let footerChildView = UIView(frame: CGRect(x: 60, y: 0, width: tableView.frame.width - 60, height: 0.5))
    footerChildView.backgroundColor = UIColor.darkGray
    footerView.addSubview(footerChildView)
    return footerView
}
于 2017-02-09T19:35:56.567 に答える