์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- TCA
- ํ๋ก๊ทธ๋๋จธ์ค
- combine
- SwiftUI
- ๋ฐฑ์ค
- arkit
- BFS
- raywenderlich
- RxSwift
- realm
- rxcocoa
- CollectionView
- designpattern
- ios
- UIKit
- Flutter
- Lv2
- swift
- BOJ
- tableView
- MVVM
- ํจ์คํธ์บ ํผ์ค
- Swfit
- visionOS
- SnapKit
- Kuring
- reactorkit
- node.js
- Xcode
- XCTest
- Today
- Total
lgvv98
[iOS] SnapKit SafeArea ๊ณ ๋ คํ๊ธฐ ๋ณธ๋ฌธ
[iOS] SnapKit SafeArea ๊ณ ๋ คํ๊ธฐ
๐ฅ ์บ๋ฟ๋งจ 2021. 8. 26. 02:53SnapKit SafeArea ๊ณ ๋ คํ๊ธฐ
โ ์ด๋ฒ ์๊ฐ์๋ SanpKit์ ์ฌ์ฉํ๋ฉด์ SafeArea๋ฅผ ๊ณ ๋ คํ๋ ๊ฒ์ ๋ํด์ ์์๋ณผ ์์ ์ด์ผ.
- (์ ๋ฐ์ดํธ) 2022.01.21 : ๊ณต๋ถ๋ฅผ ํ๋ค๊ฐ ๋ณด๋ ๋ ์ข์ ๋ฐฉ๋ฒ์ ๋ฐ๊ฒฌํจ.
- (์ ๋ฐ์ดํธ) 2022.05.08: SnapKit ์ ๋ฆฌ ๊ธ ํฌ์คํ ์ถ๊ฐ
- ์๋ ํฌ์คํ ์์ ์ค๋ ํท์ ๋ํ ์ถ๊ฐ์ ์ธ ์ฌํญ์ ์ง์์ ์ผ๋ก ์ ๋ฐ์ดํธ ํฉ๋๋ค. ๋ํ ๋ด๊ฐ ๋ณด์๋ ๊ธ์ด ๋ ์ข์์.
2021.08.25 - [iOS/SnapKit] - iOS Snapkit ๋๋ง์ ์ ๋ฆฌ ๋ชจ์
์ฐ์ ์ด๊ฑธ ์ ๊ณ ๋ฏผํ๊ฒ ๋์๋๋?
๊ฐ๋ฐ์ ํ๋ค ๋ณด๋, ์์ดํฐ์์ ๊ธฐ๊ธฐ์ ๋ฐ๋ผ ๋ ธ์น๊ฐ ์๋ ๊ธฐ๊ธฐ๋ ์๊ณ ์๋ ๊ธฐ๊ธฐ๋ ์์ด.
๊ทธ๋์ snapkit์ ์ด์ฉํ์ฌ ๋ ์ด์์์ ์ฃผ์๋๋, ๋์ค์ ํ์ธํด ๋ณด๋๊น, ๊ธฐ๊ธฐ์ ๋ฐ๋ผ ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ง ๋ชปํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋๋ผ๊ณ .
๊ทธ๋ฐ๋ฐ ๋๋, ์์ดํฐ 12 pro Max๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ ์ด์์์ ์ ๋ถ ๋ค ์ก์๋ ๋ค, ๊ธฐ๊ธฐ๋์์ ํ์ธํ๋ ๊ณผ์ ์์ ์์ดํฐ se2๋ก ์๋ฎฌ๋ ์ดํฐ๋ฅผ ๋๋ ค๋ณด๋๊น,, ๊ทธ์ ์์ผ ๋ฑ ์ํ๋ ๋ ์ด์์ ๊ฒฐ๊ณผ๋ฌผ์ด ์๋์๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ๊ฑฐ์ผ ใ ใ
๊ทธ๋ ๋ค๋ฉด ์ฐ๋ฆฌ๋ ์ด๋ป๊ฒ ์์ฑํ๋ฉด ์ข์๊น?
๋ด๊ฐ ์๊ฐํ ๋ฐฉ๋ฒ์ผ๋ก๋ ๋ฐ๋ก
1๏ธโฃ SafeArea๋ฅผ ์ ์ํ๋ ๋ทฐ ๋ง๋ค๊ธฐ
2๏ธโฃ view.addSubview(SafeArea)๋ฅผ ์์ฑํ๊ธฐ
3๏ธโฃ SnapKit์ ์ ์ฝ์กฐ๊ฑด์ SafeArea๋ก ๊ฑธ๊ธฐ
์ด ํ๋ฆ๋๋ก ์งํํ๋ฉด ํด๊ฒฐํ ์ ์๊ฒ ๋ค.
4๏ธโฃ 2022.01.21 (์ ๋ฐ์ดํธ) : ๊ณต๋ถ๋ฅผ ํ๋ค๊ฐ ๋ณด๋ ๋ ์ข์ ๋ฐฉ๋ฒ์ ๋ฐ๊ฒฌํจ.
๊ทธ๋ ๋ค๋ฉด SareArea๋ ์ด๋ป๊ฒ ์ ์ํด์ค๊น?
import UIKit
import SnapKit
class MyMainView: UIViewController {
let safetyArea: UIView = {
let v = UIView()
v.backgroundColor = .black
return v
}()
lazy var myCenterButton: UIButton = {
let btn = UIButton()
btn.setTitle("My Button(C) ", for: .normal)
btn.backgroundColor = UIColor.red
return btn
}()
override func viewDidLoad() {
super.viewDidLoad()
setBaseView()
setView()
}
func setBaseView(){
safetyArea.translatesAutoresizingMaskIntoConstraints = false // ์ฝ๋๋ก ์ ์ฝ์กฐ๊ฑด์ ์ฃผ๊ธฐ์ํด์ ๊ผญ ๋ค์ด๊ฐ์ผ ํ๋ ์ฝ๋
view.addSubview(safetyArea)
if #available(iOS 11, *) {
let guide = view.safeAreaLayoutGuide
safetyArea.topAnchor.constraint(equalTo: guide.topAnchor).isActive = true
safetyArea.bottomAnchor.constraint(equalTo: guide.bottomAnchor).isActive = true
safetyArea.leadingAnchor.constraint(equalTo: guide.leadingAnchor).isActive = true
safetyArea.trailingAnchor.constraint(equalTo: guide.trailingAnchor).isActive = true
} else {
safetyArea.topAnchor.constraint(equalTo: topLayoutGuide.topAnchor).isActive = true
safetyArea.bottomAnchor.constraint(equalTo: bottomLayoutGuide.bottomAnchor).isActive = true
safetyArea.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
safetyArea.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
}
}
func setView() {
safetyArea.addSubview(myCenterButton)
myCenterButton.snp.makeConstraints { (make) in
make.center.equalTo(safetyArea)
}
}
}
โ 2022.01.21 (์ ๋ฐ์ดํธ) : ๊ณต๋ถ๋ฅผ ํ๋ค๊ฐ ๋ณด๋ ๋ ์ข์ ๋ฐฉ๋ฒ์ ๋ฐ๊ฒฌํจ.
view.snp.makeConstraints {
$0.top.equalTo(view.safeAreaLayoutGuide)
}
์ ์ด์ ์ค์ํํธ ๊ธฐ๋ณธ ์ธ์ด์์ safeAreaLayoutGuide๋ฅผ ์ ๊ณตํด์ค๋ค.
์ด์ ๋ ์ด๋ ๊ฒ ์ฐ์!
(์ฐธ๊ณ )
https://no-b-rain.tistory.com/4
https://zeddios.tistory.com/474
'iOSํ๋ก์ ํธ > ๐ชท ๋๊ตฟํด์ปคํค(HappyHouse)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[iOS] Tableview Cell ์ฌ์ด์ ๊ฐ๊ฒฉ์ฃผ๊ธฐ (0) | 2021.08.28 |
---|---|
[iOS] TableView, CollectionView lastIndex ์ฐพ๊ธฐ (2) | 2021.08.27 |
[iOS] StackView ์ฌ์ด์์ ๊ฐ๊ฒฉ์ ์ฃผ๋๋ฒ (0) | 2021.08.26 |
[iOS] Custom font ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ (0) | 2021.08.25 |
2021 ๋๊ตฟํด์ปคํค ํ๊ธฐ(feat.์ฐ์์)๐ (0) | 2021.08.17 |