일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- androidstudio
- modal
- PyQt
- 개발자
- Xcode
- 라이브러리
- UIKit
- cocoapods
- button
- 어플리케이션
- UIButton
- kotlin
- graph
- Apple
- ui
- charts
- Chart
- 개발
- alamofire
- Python
- Swift
- PyQt5
- UITableView
- library
- Chrats
- Storyboard
- TableView
- Android
- 그래프
- ios
- Today
- Total
Jiwift
[iOS/Swift] SnapKit equalToSuperview() 기본 사용법 설명 본문
equalToSuperview()
자신의 상위뷰와 똑같게 하겠다는 것, 위에 예시 코드를 보면 top, bottom, leading, trailing을 나의 SuperView와 똑같이 하겠다는 말입니다. (사용하다 보면, 개인적인 생각으로는 "똑같다~"라는 말도 맞지만, "기준으로 하겠다~"라는 말도 되는 것 같아요)
예시를 보면 최상위 View에 myView를 추가해서 부모 -자식 관계가 형성되었습니다. 이로서 myView는 부모 View를 기준으로 옵션들이 설정될 것입니다. 만약 저기에 View를 하나 더 추가하면 어떻게 될까요?
// UI
private func setUI() {
// 슈퍼 View에 파랑색 View 추가
self.view.addSubview(self.myView)
self.myView.addSubview(self.secondView)
// SnapKit 적용
self.myView.snp.makeConstraints { make in
make.top.equalToSuperview()
make.bottom.equalToSuperview()
make.leading.equalToSuperview()
make.trailing.equalToSuperview()
}
// SnapKit 적용
self.secondView.snp.makeConstraints { make in
make.top.equalToSuperview()
make.bottom.equalToSuperview()
make.leading.equalToSuperview()
make.trailing.equalToSuperview()
}
}
코드를 보시면 self.view -> myView -> secondView 순서대로 부모 - 자식 관계가 되어있습니다. secondView는 최상위 부모 View를 모르지만 myView를 상대로 equalToSuperview() 하기 때문에 모두 같은 크기의 View가 생성됩니다.
// SnapKit 적용
self.myView.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.height.equalTo(200)
make.leading.equalToSuperview()
make.trailing.equalToSuperview()
}
더 알아보기 위해서 myView의 SnapKit 옵션을 변경하여 직사각형으로 만들었습니다. Y좌표는 부모 View를 기준으로 중앙에 위치하게 합니다. 이렇게 하면 secondView는 어떻게 보일까요??
사진을 보시면 바로 알 수 있습니다. secondView는 myView의 자식이기 때문에 똑같이 작아진 것을 확인할 수 있습니다. 만약 개발하는 과정에서 equalToSuperview()를 사용했는데 제대로 addSubview를 해주지 않으면 에러가 발생할 수 있습니다.
이번 글을 통해서 equalToSuperview()를 사용하면 자신의 super view을 기준으로 반응한다는 것을 사진과 예시 코드와 함께 알아보았습니다.
전체 코드
//
// ViewController.swift
// SnapkitEx
//
// Created by 김지태 on 11/20/23.
//
import UIKit
import SnapKit
class ViewController: UIViewController {
// 파랑색 View
lazy var myView: UIView = {
let view: UIView = UIView()
view.backgroundColor = .blue
return view
}()
// 빨간색 View
lazy var secondView: UIView = {
let view: UIView = UIView()
view.backgroundColor = .red
return view
}()
override func viewDidLoad() {
super.viewDidLoad()
// ViewController 배경색
self.view.backgroundColor = .white
// UI
self.setUI()
}
// UI
private func setUI() {
// 슈퍼 View에 파랑색 View 추가
self.view.addSubview(self.myView)
self.myView.addSubview(self.secondView)
// SnapKit 적용
self.myView.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.height.equalTo(30)
make.leading.equalToSuperview()
make.trailing.equalToSuperview()
}
// SnapKit 적용
self.secondView.snp.makeConstraints { make in
make.top.equalToSuperview()
make.bottom.equalToSuperview()
make.leading.equalToSuperview()
make.trailing.equalToSuperview()
}
}
}
'라이브러리 > SnapKit' 카테고리의 다른 글
[iOS/Swift] SnapKit inset() 기본 사용법 설명 (1) | 2023.11.29 |
---|---|
[iOS/Swift] SnapKit offSet() 기본 사용법 설명 (1) | 2023.11.22 |
[iOS/Swift] SnapKit height(높이), width(너비) 적용 (0) | 2023.11.22 |
[iOS/Swift] SnapKit equalTo() 기본 사용법 설명 (0) | 2023.11.22 |
[iOS/Swift] SnapKit 제일 기본기 UIView 추가하기 (1) | 2023.11.21 |