Если вы используете iOS9 +, вы можете использовать методы .constraint()
для определения NSAutoLayoutConstraints
Заменить self.view.addSubview(box)
на
box.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview(box)
// equal width
box.widthAnchor.constraint(equalTo: self.view.widthAnchor).isActive = true
// centered X-axis (horizontally)
box.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true
// Equal height with a 0.8 (80%) scaling factor aka multiplier
box.heightAnchor.constraint(equalTo: self.view.heightAnchor, multiplier: 0.8).isActive = true
// Pinned to the top
box.topAnchor.constraint(equalTo: self.view.topAnchor).isActive = true
// No bottom is needed as we have a set height and set top anchor.