Итак, я создал tableView и сделал его кадр идентичным кадру view, поэтому он должен быть того же размера, что и экран телефона.Однако, когда я изменяю ориентацию устройства на симулятор в симуляторе, представление таблицы сохраняет те же размеры, что и в портретном режиме.
Вот мой код tableView:
func setTableView() {
tableView.translatesAutoresizingMaskIntoConstraints = false
tableView.frame = view.frame
tableView.backgroundColor = UIColor.lightGray
tableView.delegate = self
tableView.dataSource = self
tableView.separatorColor = UIColor.lightGray
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "Cell")
}
Вот метод viewDidLoad:
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(tableView)
setTableView()
}
Вот метод, в котором я обнаруживаю изменение ориентации:
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
if UIDevice.current.orientation.isLandscape {
print("Landscape")
} else {
print("Portrait")
}
}
Вот что я получаю в симуляторе.В альбомном режиме табличное представление составляет только половину ширины представления, в то время как оно должно всегда заполнять весь экран.