AutoLayout을 조금 더 쉽게 사용할 수 있도록 만들어주는 Framework
깊이있게 다루지 않고 SnapKit 공식 Document를 옮겨적는 수준의 포스트가 될 것...
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
use_frameworks!
target '<Your Target Name>' do
pod 'SnapKit', '~> 5.6'
end
pod install
명령어를 실행시키면, 현재 디렉토리에 있는 프로젝트에 SnapKit
을 적용할 준비가 모두 마쳐진다.CocoaPods
를 사용해서 framework을 설치하고 난 다음에는 확장자 .xcworkspace
인 하얀색 프로젝트 파일을 통해서 프로젝트를 켜줘야 한다는 거스냅킷은 translatesAutoresizingMaskIntoConstraints = false
자동으로 해줍니다!!!!
<AutoLayout을 적용하고 싶은 요소>.snp.makeConstraints
: 요소에 제약조건을 만들어 줄 때 사용하면 되는 메서드이다.let box = UIView()
superview.addSubview(box)
box.snp.makeConstraints { (make) -> Void in
make.top.equalTo(superview).offset(20)
make.left.equalTo(superview).offset(20)
make.bottom.equalTo(superview).offset(-20)
make.right.equalTo(superview).offset(-20)
}
top, left, right, bottom
네 가지 단어를 통해서 box
라는 뷰의 네 모서리에 offset을 주고 있다. 이처럼 모든 모서리에 같은 제약조건을 주고 싶다면, edges
라는 키워드를 사용해서 아래 코드블럭처럼 코드를 더욱 간단하게 작성할 수 있다.let box = UIView()
superview.addSubview(box)
box.snp.makeConstraints { (make) -> Void in
make.edges.equalTo(superview).inset(UIEdgeInsets(top: 20, left: 20, bottom: 20, right: 20))
}
make.edges.equalTo(superview).inset(UIEdgeInsets(top: 20, left: 20, bottom: 20, right: 20))
에서 보면, 만들다 -> 모서리 -> 동일하게(상위 뷰와) -> inset을
와 같이 읽어나갈 수 있게 코드를 적으면 된다....low, .medium, .high, .required
네 가지 조건으로 볼 수 있는데, 앞에서부터 250, 500, 750, 1000의 priority값을 가진다고 생각하면 된다.https://snapkit.github.io/SnapKit/docs/ // 스냅킷 공식 Document!