Как сделать высоту кадра объекта 80 процентов от контроллера просмотра - PullRequest
0 голосов
/ 04 августа 2020

Я хочу, чтобы высота окна объекта составляла 80% от высоты контроллера представления, а ширина должна быть 100%. Ящик для объектов должен быть прикреплен к верху, а 20 процентов пространства - к низу.

import UIKit

class ViewController: UIViewController {
    
    var box = UIImageView()

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.

        box.backgroundColor = .blue
        
        
        box.frame = self.view.frame
        
        self.view.addSubview(box)
    }


}

1 Ответ

0 голосов
/ 05 августа 2020

Если вы используете 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.
...