Добавление начальных и конечных пробелов в uitableview дочернего класса, унаследованного от родительского класса программно с помощью swift

Я пытаюсь добавить начальные и конечные пробелы в табличное представление, встроенное в представление программно. Это табличное представление имеет ограничения, объявленные в родительском классе, я пытаюсь переопределить их в дочернем классе. Я делаю следующим образом

class TestTableView: BaseTableViewController{

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    self.lpBaseTableView.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.lpBaseTableView.contentSize.height)
    self.lpBaseTableView.center = self.view.center
    self.lpBaseTableView.translatesAutoresizingMaskIntoConstraints = false
    self.lpBaseTableView.leadingAnchor.constraint(equalTo: self.view.leadingAnchor, constant: 16).isActive = true
    self.lpBaseTableView.trailingAnchor.constraint(equalTo: self.view.trailingAnchor, constant: 16).isActive = true

 }
}

После исследования нескольких ссылок из-за переполнения стека я использую приведенный выше код, но нет изменений в позиции табличного представления, как показано ниже на рисунке. Пожалуйста, помогите мне. Я новичок в Swift и iOS TableView в представлении

2 ответа

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

    lpBaseTableView = UITableView()
    lpBaseTableView.translatesAutoresizingMaskIntoConstraints = false
    view.addSubview(lpBaseTableView)

    NSLayoutConstraint.activate([
        lpBaseTableView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 16),
        lpBaseTableView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -16),
        lpBaseTableView.topAnchor.constraint(equalTo: view.topAnchor),
        lpBaseTableView.bottomAnchor.constraint(equalTo: view.bottomAnchor)
    ]) 

Вы можете попробовать с SnaKit

    import SnapKit

    lpBaseTableView.snp.makeConstraints { (make) in
    make.center.equalTo(view)
    make.left.equalTo(view.snp.left)
    make.right.equalTo(view.snp.right)

Обратите внимание, что если есть также ограничения из раскадровки для одного и того же объекта, он не сможет работать должным образом

Другие вопросы по тегам