iOS: сделать разные backgroundColor для tableView и tableHeaderView - PullRequest
0 голосов
/ 19 мая 2018

Вот что я пытаюсь заархивировать

  • мой основной вид имеет красный цвет с градиентом.
  • tableHeaderView должен иметь четкий цвет (потому что это вид с закругленными углами,поэтому в некоторых частях должно быть ясно, чтобы отображались закругленные углы).
  • tableView (кроме заголовка) должен иметь белый цвет.Даже если в нем только одна ячейка, нижнее пространство под этой ячейкой должно быть белым.

Моя иерархия представлений проста: у меня есть tableView поверх основного представления

        view.backgroundColor = .clear
        tableView.backgroundColor = UIColor.clear
        ...
        cell.backgroundColor = UIColor.clear
        ...
        tableView.tableHeaderView = someView (with clear color)

Итак, после этих настроек у меня отображается таблица с чистым цветом фона, если у меня есть одна ячейка (я установил ее цвет фона на белый), пространство под этой ячейкой будет чистым.Но это должно быть белым.Как я могу получить это?

--- решено:

    tableView.tableFooterView = UIView()
        if let tableFooterView = tableView.tableFooterView {
            let bigFooterView = UIView()
            bigFooterView.backgroundColor = .white
            tableFooterView.addSubview(bigFooterView)

            bigFooterView.translatesAutoresizingMaskIntoConstraints = false
            tableFooterView.addConstraint(NSLayoutConstraint(item: bigFooterView, attribute: .trailing, relatedBy: .equal, toItem: tableFooterView, attribute: .trailing, multiplier: 1, constant: 0))
            tableFooterView.addConstraint(NSLayoutConstraint(item: bigFooterView, attribute: .leading, relatedBy: .equal, toItem: tableFooterView, attribute: .leading, multiplier: 1, constant: 0))
            tableFooterView.addConstraint(NSLayoutConstraint(item: bigFooterView, attribute: .top, relatedBy: .equal, toItem: tableFooterView, attribute: .top, multiplier: 1, constant: 0))
            tableFooterView.addConstraint(NSLayoutConstraint(item: bigFooterView, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1, constant: UIScreen.main.bounds.height*2))
        }

1 Ответ

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

Установить нижний колонтитул таблицы на белый вид.

let footerView = UIView (frame: CGRect (x: 0, y: 0, width: 0, height: someHeight) footerView.backgroundColor =.white

tableView.tableFooterView = footerView

...