Layout by code

2018, Oct 15    

Layout by code

코드로 작성시

class ViewController: UIViewController {

    let redView = UIView()
    let blueView = UIView()

    override func viewDidLoad() {
        super.viewDidLoad()

        redView.backgroundColor = .red
        blueView.backgroundColor = .blue

        view.addSubview(redView)
        view.addSubview(blueView)
    }

    override func viewWillLayoutSubviews() {
        super.viewWillLayoutSubviews()

        let margin: CGFloat = 20
        let safeLayoutInsets = view.safeAreaInsets
        let horizontalInset = safeLayoutInsets.left + safeLayoutInsets.right

        let yOffset = safeLayoutInsets.top + margin
        let viewWidth = (view.bounds.midX - margin - 5 - (horizontalInset / 2 ))
        let viewHieght = view.bounds.height - yOffset - (safeLayoutInsets.bottom + margin)

        redView.frame = CGRect(
            x: safeLayoutInsets.left + margin,
            y: yOffset,
            width: viewWidth,
            height: viewHieght
        )

        blueView.frame = CGRect(
            origin: CGPoint(
                x: redView.frame.maxX + 10,
                y: yOffset),
            size: redView.bounds.size
        )

    }
}