web-dev-qa-db-ja.com

フッタービューを常にUITableViewControllerの下部に表示するにはどうすればよいですか?

UITableviewcontrollerを使用していて、footer viewが常に画面のbottomにとどまるようにしたい。ただし、フッタービューyの位置は、heighttableviewcellに従って変更されます。常に画面の下部に固定する方法を教えてください。

11
Isha Balla

tableviewフッタービューは常にtableviewの下部にとどまり、常にスクロールします。フッタービューを下部で固定する必要がある場合は、TableViewControllerを使用できません。UIViewControllerを使用する必要があるため、tableViewをサブビューとして配置します。フッターも別のサブビューとして配置し、完了します。

6
MeghaJain

UITableViewControllerは使用できませんが、とにかく必要はありません。 UITableViewを通常のUIViewControllerに簡単に追加し、自動レイアウトを使用してUIViewUITableViewの下に追加するだけです。次に、UIViewの下に赤いUITableViewを追加する簡単な例を示します。

import UIKit

class MyFooterTableViewController: UIViewController {

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    var data = [ "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve"]

    override func viewDidLoad() {
        super.viewDidLoad()
        self.tableView.dataSource = self
    } 

    @IBOutlet weak var tableView: UITableView!

}

extension MyFooterTableViewController: UITableViewDataSource {
    // MARK: - Table view data source

    func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return data.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "TableCellTest", for: indexPath)

        cell.textLabel?.text = data[indexPath.row]
        cell.detailTextLabel?.text = "BANANA"
        return cell
    }
}

ストーリーボードの制約は次のようになります。

constraints

最終結果はこれです:

animated

完全なプロジェクトコードは次のとおりです。

https://www.dropbox.com/s/pyp42nzumquompp/TableViewFooter.zip?dl=

1
David S.

フッターは常にコンテンツサイズの下部に追加されます。だから私のアプローチは

アプローチ1:(静的および動的TableViewの両方で使用可能)

ストーリーボードにViewControllerを追加し、フッタービュー(またはボタン)をViewControllerの下部に設定します。

ContainerViewViewControllerを追加して制約を設定する

UITableViewControllerを追加し、コンテナービューにテーブルビューを埋め込みます。

アプローチ2:(両方の動的TableViewで使用可能)

ViewControllerを追加し、下部にフッタービューを設定し、UITableViewを追加して、自動レイアウトを設定します。

UIViewControllerで静的テーブルビューを設定することはできません

0
Ankur Lahiry