본문 바로가기

swift/snapkit

snapkit(3)

본격적으로 snapkit으로 하나씩 만들어 본다.


1.가운데 빨간색 네모 박스를 하나 만든다.

lazy property를 이용해서 view를 하나 생성해둔다.



class View1Controller: UIViewController {
    var didSetupConstraints = false

    let redView: UIView = {
        let view = UIView()
        view.backgroundColor = UIColor.red
        return view
    }()

    override func viewDidLoad() {
        super.viewDidLoad()

        self.initUI()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    static func instance()->View1Controller{
        let vc = View1Controller()
        return vc
    }
}


//snapkit
extension View1Controller {

    func initUI() {
        self.view.backgroundColor = .white

        self.view.addSubview(self.redView)
        view.setNeedsUpdateConstraints()
    }

    override func updateViewConstraints() {
        if (!didSetupConstraints) {
            //tableView
            redView.snp.makeConstraints { make in
                make.size.equalTo(100)
                make.center.equalToSuperview()
            }

            didSetupConstraints = true
        }

        super.updateViewConstraints()

    }
}




2.redview를 lazy로 만들어 두고 initUI에서 view에 추가한다.

그리고 setNeedsUpdateConstraints를 호출해서 view의 updateViewConstraints가 호출 되도록 한다.

didSetupConstraints를 이용해서 한번만 snapkit를 잡아둔다.





https://github.com/choiks14/SnapkitTest





'swift > snapkit' 카테고리의 다른 글

snapkit(6)  (0) 2017.06.25
snapkit(5)  (0) 2017.06.18
snapkit(4)  (0) 2017.06.18
snapkit(2)  (0) 2017.06.18
snapkit(1)  (0) 2017.06.18