Есть простое приложение с TableView, в коде я создаю FooterView (с кнопкой внутри) и HeaderView (с UICollectionView внутри). С выбранным симулятором Iphone 11,12, X - все работает хорошо, размеры FooterView и HeaderView соответствуют заданным. Но если я выберу IphoneSE - размеры сбиваются, FooterView вообще пропадает, HeaderView становится микроскопическим. Пожалуйста помоги
private func configureUITableViewFooter(){
let footerView = UINib(nibName: "FooterView",
bundle: .main).instantiate(withOwner: nil, options: nil).first as! FooterView
footerView.delegate = self
footerView.frame = CGRect(x: 0, y: 0, width:self.view.bounds.width, height: 200)
OrderTableView.tableFooterView = footerView
}
private func configureUITableViewHeader() {
let headerView = UINib(nibName: "HeaderView", bundle: nil).instantiate(withOwner: nil, options: nil).first as! HeaderView
headerView.delegate = self
headerView.dataForHeaderCollectionViewCell = selectedObject
headerView.configureView()
headerView.frame = CGRect(x: 0, y: 0, width:self.view.bounds.width, height: self.view.frame.height/3)
OrderTableView.tableHeaderView = headerView
}
override func viewDidLoad() {
super.viewDidLoad()
OrderTableView.register(UINib(nibName: "OrderTableViewCell", bundle: nil), forCellReuseIdentifier: "OrderTableViewCell")
self.viewModel = ViewModel(data: selectedObject!)
configureNavigationController()
configureUITableViewHeader()
configureUITableViewFooter()
}
вот результат для iphone se: введите описание изображения здесь
вот результат для iphone 11: введите описание изображения здесь
Ребята, как вы думаете, в чем дело?
Я напечатал ("\ (self.view.bounds)") в viewDidLoad, FooterConfig, HeaderConfig - результат: (0.0, 0.0, 375.0, 667.0)





Это потому, что в вашей раскадровке или в файле xib вашего viewController отображается размер iphone 12. В viewDidLoad размер tableView загружается с размером в iphone 12, поэтому в iphone 12 или другом устройстве с таким же размером они отображаются правильно, и в iphone SE они отображаются некорректно. Попробуйте установить верхний и нижний колонтитулы, когда размер tableView правильный, например, в ViewDidAppear
Спасибо! Это помогло решить проблему!
Выведите значение
self.view.bounds. Может быть, вы используете это значение слишком рано, до того, как произошла разметка?