[iOS] Constraint설정 isActive vs addConstraints vs NSLayoutConstraint
IT/IOS

[iOS] Constraint설정 isActive vs addConstraints vs NSLayoutConstraint

Constraint를 코드로 설정하려고 하는데, 방법이 다양해서 구글링을 하여 아래 글을 참고하였다. 

https://stackoverflow.com/questions/39938900/ios-constraint-style-addconstraints-vs-isactive-true

 

iOS constraint style: addConstraints vs .isActive = true

I have some code which is creating auto-layout constraints programatically, and adding them to a view. There are two ways to do this - call addConstraints on the superView, or set .isActive = true...

stackoverflow.com

이 3가지 방법을 위에서 소개한다. 

 

1. isActive 

2. addConstraints

3. NSLayoutConstraoint.activate 

 

 

1번 방법은 각각 constraint를 설정해주는 것 

child.topAnchor.constraint(equalTo: parent.topAnchor, constant: 20).isActive = true
child.leftAnchor.constraint(equalTo: parent.leftAnchor, constant: 5).isActive = true

2번 방법은 superView에 constraint를 설정해주는 것

parent.addConstraints([
    child.topAnchor.constraint(equalTo: parent.topAnchor, constant: 20),
    child.leftAnchor.constraint(equalTo: parent.leftAnchor, constant: 5) ])

3번 방법은 한 번에 constraint를 설정할 수 있다. 그래서 여러 constraint를 잡아야 할 시 3번 방법이 가장 best이지 않을까 한다. 

 

NSLayoutConstraint.activate([
    child.topAnchor.constraint(equalTo: parent.topAnchor, constant: 20),
    child.leftAnchor.constraint(equalTo: parent.leftAnchor, constant: 5) ])