ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [iOS] safeAreaLayoutGuide
    iOS 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

     

    ๋Œ“๊ธ€

Designed by Tistory.