본문 바로가기

swift/snapkit

snapkit(5)

1.하단에 요새 많이 구매하기 버튼을 넣는 식으로 바디와 푸터를 구분해보자.


view 구조는 

view - body

        - footer


body는 top,left,right는 view와 맞닿아 있고 footer의 top과 맞닿아 있다.

footer는 bottom,left,right는 view와 맞닿아 있고 body의 bottom과 맞닿아 있다. 


그리고 footer는 높이를 주지 않게되면 화면에 나타 나지 않게된다. 



class View3Controller: UIViewController {
    var didSetupConstraints = false

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

    let bodyView: UIView = {
        let view = UIView()
        view.backgroundColor = UIColor.gray
        return view
    }()


    override func viewDidLoad() {
        super.viewDidLoad()

        self.initUI()
    }

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

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

//snapkit
extension View3Controller {

    func initUI() {
        self.view.backgroundColor = .white
        self.view.addSubview(self.footerView)
        self.view.addSubview(self.bodyView)
        view.setNeedsUpdateConstraints()
    }

    override func updateViewConstraints() {
        if (!didSetupConstraints) {
            /*
                body
                footer
            */
            bodyView.snp.makeConstraints { (make) in
                make.top.equalTo(self.view)
                make.top.left.right.equalTo(self.view)
                make.bottom.equalTo(self.footerView.snp.top)
            }

            footerView.snp.makeConstraints { (make) in
                make.height.equalTo(100)
                make.top.equalTo(self.bodyView.snp.bottom)
                make.bottom.left.right.equalTo(self.view)
            }

            didSetupConstraints = true
        }

        super.updateViewConstraints()

    }
}



결과 화면


https://github.com/choiks14/SnapkitTest


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

snapkit(7)  (0) 2017.06.25
snapkit(6)  (0) 2017.06.25
snapkit(5)  (0) 2017.06.18
snapkit(4)  (0) 2017.06.18
snapkit(3)  (0) 2017.06.18
snapkit(2)  (0) 2017.06.18