Размер контента UIScrollview не увеличивается с автоматическим макетом - PullRequest
0 голосов
/ 05 января 2019

Я добавил UIScrollView и хочу добавить 4 UITableView равного размеру экрана. Таким образом, scrollview будет иметь 4 страницы, равные размеру экрана. Я добавил представление содержимого в scrollview и добавил 4 представления таблицы, но я не могу сделать вертикальную прокрутку, вероятно, из-за того, что размер его содержимого не увеличивается.

Вот мой xib:

enter image description here

Синяя область - это представление содержимого, но его ширина не увеличивается, хотя при перемещении вида прокрутки с помощью элемента управления страницы я вижу другие виды таблиц.

1 Ответ

0 голосов
/ 07 января 2019

Прежде всего, укажите статическую высоту таблицы и возьмите эту высоту на выходе. И следующий шаг: вам нужно наблюдение за таблицей для получения высоты, затем назначьте в этом наблюдателе, вы можете назначить высоту для каждого просмотра таблицы.

 override func viewWillAppear(_ animated: Bool) {
     Tblvw1.addObserver(self, forKeyPath: "contentSize", options: [.new], context: nil)
     Tblvw2.addObserver(self, forKeyPath: "contentSize", options: [.new], context: nil)
     Tblvw3.addObserver(self, forKeyPath: "contentSize", options: [.new], context: nil)
     Tblvw4.addObserver(self, forKeyPath: "contentSize", options: [.new], context: nil)
}

 override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)        
        Tblvw1.removeObserver(self, forKeyPath: "contentSize")
        Tblvw2.removeObserver(self, forKeyPath: "contentSize")
        Tblvw3.removeObserver(self, forKeyPath: "contentSize")
        Tblvw4.removeObserver(self, forKeyPath: "contentSize")      

    }

   override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
        if object is UITableView {
            print("contentSize:= \(Tblvw1.contentSize.height)")
            self.heightOfTable1.constant = Tblvw1.contentSize.height
            self.heightOfTable2.constant = Tblvw2.contentSize.height
            self.heightOfTable3.constant = Tblvw3.contentSize.height
            self.heightOfTable4.constant = Tblvw4.contentSize.height
        }
    }

Примечание: убедитесь, что вам необходимо отключить прокрутку всех табличных представлений

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