-
[iOS] safeAreaLayoutGuideiOS 2022. 5. 26. 02:58
๊ณต์ ๋ฌธ์ ๋ด์ฉ
safeAreaLayoutGuide๋, bar๋ ๋ค๋ฅธ content๋ก ์ธํด์ ๊ฐ๋ ค์ง์ง ์๋ ๋ทฐ ๋ถ๋ถ์ ๋ํ๋ด๋ layout guide ์ด๋ค.
๋ทฐ๊ฐ ํ๋ฉด์ ํ์๋ ๋, ์ด guide๋ navigation bar, tab bar, toolbar ๊ทธ๋ฆฌ๊ณ ๊ธฐํ ์์ ๋ทฐ์์ ๋ค๋ฃจ์ง ์๋ ๋ทฐ ๋ถ๋ถ์ ๋ฐ์ํ๋ค. (tvOS์์ safe area๋ ํ๋ฉด์ ๋ฒ ์ ค์ ๊ฐ๋ฆฌ์ง ์๋ ์์ญ์ ๋ฐ์ํ๋ค.)
๋ทฐ๊ฐ ํ์ฌ ๋ทฐ ๊ณ์ธต์ด install ๋์ด์์ง ์๊ฑฐ๋ ์์ง ํ๋ฉด์ ํ์๋์ง ์์์ ๊ฒฝ์ฐ, layout guide๋ ๋ทฐ์ ๊ฐ์ฅ์๋ฆฌ์ ๋์ผํ๋ค.
๋ทฐ์ปจํธ๋กค๋ฌ ๋ฃจํธ๋ทฐ์ ๊ฒฝ์ฐ, layout guide๋ status bar, ๋ค๋ฅธ ๋ณด์ฌ์ง๋ bar๋ ๋ทฐ์ปจํธ๋กค๋ฌ์ additionalSafeAreaInsets ์์ฑ์ ์ฌ์ฉํ์ฌ ์ง์ ํ ์ถ๊ฐ์ ์ธ inset๋ค์ ์์ฉํ๋ค. ๋ทฐ ๊ณ์ธต์ ๋ค๋ฅธ ๋ทฐ๋ค์ ๊ฒฝ์ฐ, layout guide๋ ๋ค๋ฅธ content๊ฐ ๋ค๋ฃจ๋ ๋ทฐ์ ์ผ๋ถ๋ง ๋ฐ์ํ๋ค. ์๋ฅผ ๋ค๋ฉด, ๋ง์ฝ ๋ทฐ๊ฐ superview์ safe area ๋ด์ ์์ ๊ฒฝ์ฐ, layout guide์ edge๋ view์ ๊ฐ์ฅ์๋ฆฌ์ ๋์ผํ๋ค.
์ฆ, safeAreaLayout์ ์ ์๋ (๋ ธ์น), ์ข ์ฐ ์งค๋ฆฌ๋ ๊ฑฐ ๋ฐฉ์งํ๊ธฐ ์ํด์ ์๊น.
ScrollView๋ก ์์๋ฅผ ๋ณด์.
ScrollView์์ safeLayoutGuide๋ฅผ ์ ์ฉํ์ง ์์ ๊ฒฝ์ฐ,
scrollView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true scrollView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true scrollView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true scrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true์ด๋ฐ ๊ณ์ธต์ผ๋ก ๊ตฌ์ฑ์ด ๋๊ณ ,

์คํฌ๋กค๋ทฐ๊ฐ ๋ ธ์น์ ํ๋จ ํญ๋ฐ๋ฅผ ์นจ๋ฒํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ๋ง์ฝ ์ ๋ถ๋ถ์ ์ค์ํ ๋ด์ฉ์ด๋ ์ด๋ฏธ์ง๊ฐ ์์ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ๋๋ค.




์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๊ฒ์ด ๋ฐ๋ก safeLayoutGuide์ด๋ค.
scrollView.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor).isActive = true scrollView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor).isActive = true scrollView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor).isActive = true scrollView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor).isActive = true๋ทฐ ๊ณ์ธต์ ์ด๋ ๊ฒ ๋์ด์๋ค. ์ด์ ๊ณผ ๋ฌ๋ฆฌ ์, ์๋๊ฐ ๋ฑ ๋ถ์ด์์ง ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.

์คํฌ๋กค๋ทฐ๊ฐ ๋์ด์ ๋ ธ์น์ ํ๋จ ํญ๋ฐ, ์ข, ์ฐ๋ฅผ ์นจ๋ฒํ์ง ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.




https://developer.apple.com/documentation/uikit/uiview/2891102-safearealayoutguide
Apple Developer Documentation
developer.apple.com
'iOS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[iOS] ํ์ ์๋ฆผ์ฐฝ ๊ตฌํ ์ค ๋ฐ์ํ Cannot be called with asCopy = NO on non-main thread. ๋ฌธ์ ํด๊ฒฐ (0) 2022.07.07 [iOS] Coordinator Design Pattern ๋ฒ์ญ (1) 2022.05.26 [iOS] SwiftLint ์ ์ฉํ๊ธฐ (0) 2022.05.10 [iOS] SnapKit ์ฌ์ฉํ๊ธฐ (0) 2022.05.10 [iOS] Xib ์ฌ์ด์ฆ ๋ณ๊ฒฝํ๊ธฐ (0) 2022.04.09