скрыть ячейку табличного представления и удалить пространство табличного представления - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь скрыть табличное представление и удалить пробел.Но табличное пространство просмотра не удалено.Когда пользователь впервые заходит на эту страницу, в табличном представлении нет данных, поэтому я пишу ishidden = true .table скрыто, но пространство не удаляется. Пользователь добавляет данные вручную, и появляется табличное представление. Это работает правильно после добавления данных,Я пытаюсь

self.tableView.tableFooterView = UIView()
self.tableView.ishidden=true

над таблицей кодов скрыть, но не удалить табличное пространство.Так как же убрать пространство скрытого табличного представления ..

Ответы [ 3 ]

0 голосов
/ 24 сентября 2018

Вам необходимо установить ограничение высоты для табличного представления.Лучшее место для установки высоты - функция numberOfSectionsInTableView.Эта функция вызывается один раз при каждой перезагрузке данных.

//Assuming your data source
var dataSource: [String] = []

//connect this outlet to tableViewHeight Constraint
@IBOutlet var tableViewHeight: NSLayoutConstraint!

//connect this outlet to tableView
@IBOutlet var tableView: UITableView!

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

    //need to check the data availability
    if self.dataSource.count == 0{
        //need to set the table height constraint to zero
        self.tableViewHeight.constant = 0
        self.tableView.isHidden = true
        return 0
    }
    else {
        //need to set the table height constraint to desired frame.
        self.tableViewHeight.constant = self.view.frame.size.height //Assuming full screen.
        self.tableView.isHidden = false
        return 1

    }
0 голосов
/ 24 сентября 2018

Если вы просто хотите скрыть tableView, просто установите tableView.alpha в 0 и отключите взаимодействие tableView.Вы можете настроить представление без данных перед просмотром таблицы в иерархии раскадровок, а затем управлять альфа-значениями просмотра таблицы, чтобы скрыть и показать представление без данных

0 голосов
/ 24 сентября 2018

вы можете сделать с помощью tableview contentSize ключ наблюдателя. Для этого вам нужно взять Outlet высоты tableview и установить в методе tableView наблюдателя.Установите отключение прокрутки tableView.

 override func viewWillAppear(_ animated: Bool) {

        tbl.addObserver(self, forKeyPath: "contentSize", options: [.new], context: nil)
    }

    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)

        tbl.removeObserver(self, forKeyPath: "contentSize")
    }


    override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
        if object is UITableView {
            print("contentSize:= \(tbl.contentSize.height)")
            self.heightTbl.constant = tbl.contentSize.height
        }
    }

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

...