Как сделать нижний колонтитул UITableViewCell не статичным? - PullRequest
0 голосов
/ 23 мая 2018

enter image description here

У меня есть 2 прототипа динамической ячейки с именами InvoiceDetailCell и TotalCostFooterCell.Я делаю TotalCostFooterCell как вид ячейки нижнего колонтитула, используя viewForFooterInSection.Вот код, который я использую для назначения данных для UITableView

. Вот мой код в UITableViewController.

extension InvoiceDetailVC : UITableViewDataSource {
    // MARK: - UI Table View Datasource Methods

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

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

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "InvoiceDetailCell", for: indexPath) as! InvoiceDetailCell
        cell.invoiceElementData = invoiceElements[indexPath.row]

        return cell
    }



}


extension InvoiceDetailVC : UITableViewDelegate {

    // MARK: - UI Table View Delegate Methods

    func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
        let cell = tableView.dequeueReusableCell(withIdentifier: "invoiceDetailFooterCell") as! TotalCostFooterCell
        cell.totalCost = singleInvoiceData.unpaid

        return cell
    }

}

, но результат не такой, как я ожидал, я имею в виду, что ячейка нижнего колонтитула придерживается/ не двигаться.вот файл .gif: http://g.recordit.co/vf0iwCfEWX.gif

Вы можете видеть, что общая стоимость (красный цвет) является липкой / статической, я хочу, чтобы ячейка нижнего колонтитула могла быть прокручена и всегда в нижней части.или у меня неправильно реализовано то, что я хочу?

enter image description here

Ответы [ 3 ]

0 голосов
/ 23 мая 2018

Вы можете установить свой собственный вид, который вы хотите:

tableView.tableFooterView = yourCustomView

Или вы можете поместить все внутри вашего xib / раскадровки, как это:

0 голосов
/ 23 мая 2018

сделать стиль таблицы сгруппированным

Вы можете сделать это двумя способами:

  1. В viewDidLoad() сделать tableView.style = .grouped
  2. Выбрать представление таблицыиз раскадровки и в инспекторе атрибутов измените стиль на сгруппированный.Пожалуйста, обратитесь к приложенному изображению. enter image description here
0 голосов
/ 23 мая 2018

Разве вы не можете сделать это последней строкой табличного представления?Я имею в виду, что представление уже является ячейкой табличного представления, поэтому имеет смысл использовать его в качестве последней строки.

Сначала измените это:

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

А затем для cellForRowAt:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    if indexPath.row == invoiceElements.count {
        let cell = tableView.dequeueReusableCell(withIdentifier: "invoiceDetailFooterCell") as! TotalCostFooterCell
        cell.totalCost = singleInvoiceData.unpaid

        return cell
    }
    let cell = tableView.dequeueReusableCell(withIdentifier: "InvoiceDetailCell", for: indexPath) as! InvoiceDetailCell
    cell.invoiceElementData = invoiceElements[indexPath.row]

    return cell
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...