Как удалить разделитель между заголовком и первой строкой в ​​сгруппированном табличном представлении - PullRequest
0 голосов
/ 11 октября 2018

Я создаю статический tableView.Моя цель состоит в том, чтобы иметь одно представление, которое отображает табличное представление с 3 строками (получить поддержку, отправить отзыв, условия участия) и верхний и нижний колонтитулы.

Прямо сейчас, все работает нормально, за исключением того факта, что есть два дополнительных разделителя (один между заголовком и первой ячейкой, а другой между последней ячейкой и нижним колонтитулом), от которых я не могу избавиться.

Вот мой код:

final class viewController: UITableViewController {

    private let headerContainer = UIView()
    private let footerContainer = UIView()

    private let tableData = ["Get Support", "Send Feedback", "Participation Terms"]

    override func viewDidLoad() {
        super.viewDidLoad()

        setupHeaderAndFooter()
        setupTableView()
    }

    func setupHeaderAndFooter() {
        /* setup code here (not relevant to this question) */

    func setupTableView() {
        // reinitializing tableView so that we can change its style to grouped
       tableView = UITableView(frame: CGRect.zero, style: .grouped)
       tableView.delegate = self
       tableView.separatorStyle = .singleLine
    }

    //MARK: UITableView Methods

    override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        return headerContainer
    }

    override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
         return 150
    }

    override func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
        return footerContainer
    }

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

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

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

    override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 70
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = UITableViewCell(style: .subtitle, reuseIdentifier: "cell")
        cell.textLabel!.text = tableData[indexPath.row]
        return cell
    }
}

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Хорошо, вот и все.

Простой трюк на самом деле состоит из одной строки и говорит само за себя:

self.tableView.separatorColor = self.tableView.backgroundColor

ПОСЛЕ:

enter image description here

Надеюсь, это поможет!

0 голосов
/ 11 октября 2018

Один из способов добиться этого - не использовать разделитель по умолчанию, предоставленный UITableView.и поместите один UILabel или UIView и установите его цвет фона на светло-серый и установите его высоту = 1 (согласно вашему требованию), ширину (полная ширина табличного представления или согласно вашему требованию) и положение внизу всего вашего контентавнутри ячейки, верхнего или нижнего колонтитула.

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