Мне кажется, ты довольно близко. 2 основных момента, которые я бы предложил: 1) Вам нужно установить translatesAutoresizingMaskIntoConstraints
в false, если вы хотите, чтобы ваши ограничения действительно вступили в силу. 2) Если вы хотите, чтобы ваше табличное представление отображалось в другом представлении, вам нужно установить верхний якорь вашего табличного представления равным нижнему якорю вашего другого представления.
В частности, именно так я бы изменил опубликованный вами код. Чтобы решить вашу проблему:
HomeViewScene = UITableView(frame: view.bounds, style: .plain)
HomeViewScene.backgroundColor = Colors.white
view.addsubview(tableview)
let cellNib = UINib(nibName: "PosterCell", bundle: nil)
HomeViewScene.register(cellNib, forCellReuseIdentifier: "postCell")
var layoutguide:UILayoutGuide
layoutguide = view.safeAreaLayoutGuide
HomeViewScene.translatesAutoresizingMaskIntoConstraints = false //Add this line
HomeViewScene.leadingAnchor.constraint(equalTo: layoutguide.leadingAnchor).isActive = true
HomeViewScene.topAnchor.constraint(equalTo: otherView.topAnchor).isActive = true //You need to make sure the TOP of the table view is positioned right at the BOTTOM of the other view
HomeViewScene.trailingAnchor.constraint(equalTo: layoutguide.trailingAnchor).isActive = true
HomeViewScene.bottomAnchor.constraint(equalTo: layoutguide.bottomAnchor).isActive = true
Помните, что если вы программно изменяете ограничения для вида, вы должны установить для translatesAutoresizingMaskIntoConstraints
значение false, иначе вы не увидите изменений в позиции этого вида.