[Swift] Content Priority Ambiguity ์๋ฌ ํด๊ฒฐํ๊ธฐ (hugging priority, compression resistance priority ๋?)
Swift์์ AutoLayout์ ํ์ฉํ์ฌ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋ค๋ณด๋ฉด ์๋์ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ ๋๊ฐ ์๋ค. ๊ทธ๋ฅ ๋จ์ํ margin์ ์ค์ ํ์ ๋ถ์ธ๋ฐ ์.. ๋๋์ฒด ์๋ฌ๊ฐ ๋ฐ์ํ์ง?
label๊ณผ label ์ฌ์ด์ margin์ 20์ผ๋ก ์ค์ ํ๋๋ฐ, ์ด๋ ๊ฒ ๋นจ๊ฐ์ค์ด ๋จ๋ฉด์ ์ ํ ์์ ๋์ง ์์๋ค. ์ ์์์ง์ฌ?? ์ด๋ ๋ฐ๋ก error๊ฐ ๋ฐ์ํ ๊ฒ์ด๋ค.
์ผ์ชฝ ๋ค๋น๊ฒ์ดํฐ(?)์ ๋ณด๋ฉด, ์ค๋ฅธ์ชฝ ์๋จ์ ์์ ๋นจ๊ฐ ํ์ดํ๊ฐ ์๊ฒผ๋ค. ํด๋ฆญํด๋ณด์.
๋ฌด์จ์๋ฌ์ผ๊น? ์๋ฌ ๋ฉ์ธ์ง๋ ๋ค์๊ณผ ๊ฐ๋ค.
"Content Priority Ambiguity", "Set vertical hugging priority"๋ผ๊ณ ๋์จ๋ค. ๋๋์ฒด ๋ฌด์จ๋ง์ผ๊น.
์ด๋ ๋ฐ๋ก content hugging priority๋ฅผ ์ค์ ํ๋ผ๋ ๋ป์ด๋ค. ์ด๋ side inspector ๋ฉ๋ด์์ ์ค์ ๊ฐ๋ฅํ๋ค. (์๋ ์ฌ์ง์ ๋ณด์. xcode ์ผ์ชฝ ์ฌ์ด๋ ๋ฐ ์๋์์ ๋๋ฒ์งธ ์์ ์๋ content hugging priority ๋ฉ๋ด์์ ์ค์ ๊ฐ๋ฅํ๋ค)
์ฌ๊ธฐ์ ์ ๊น, content hugging priority๋ ๋ฌด์์ผ๊น?
ui ํ๋ ์์ํฌ์์ ์ ๊ณตํ๋ ์ผ๋ถ view์๋, contents ๊ณ ์ ์ฌ์ด์ฆ๋ผ๋ ๊ฐ๋ ์ด ์๋ค. ์๋ฅผ๋ค์ด, UI Label, UI button๋ค๊ณผ ๊ฐ์ ๋ทฐ์ ์์ฑ, ํ ์คํธ๋ ์ด๋ฏธ์ง์ ๋ฐ๋ผ ํฌ๊ธฐ๊ฐ ๊ฒฐ์ ๋๋ view๋ค์ด ์๋ค. ์ด๋ฌํ view๋ค์ ๋ค๋ฅธ view๋ค๊ฐ์ ๊ฑธ๋ฆฐ ์ ์ฝ์ ์ํด ๋ณธ๋์ ์ฝํ ์ธ ๊ณ ์ ์ฌ์ด์ฆ๋ณด๋ค ๋ ๋์ด๋๊ฑฐ๋ ์ค์ด๋ค๊ฒ ๋๋ค. ๋ ๋์ด๋๊ฒ ๋๋๊ฒ์ ๋ํด ์ ํญํ๋ ์ ์ฝ์ contents hugging์ด๋ผ๊ณ ํ๊ณ , ์ค์ด๋๋ ๊ฒ์ ๋ํด ์ ํญํ๋ ์ ์ฝ์ contents compression resistance ๋ผ๊ณ ํ๋ค. ์ด ๊ณ ์ ์ฝํ ์ธ ์ฌ์ด์ฆ์ ๋ณ๊ฒฝ์ ๋ํ ์ ์ฝ์๋ ์ฐ์ ์์๊ฐ ์๋๋ฐ, ์ด ์ฐ์ ์์์ ๋ฐ๋ผ ์ฝํ ์ธ ๊ณ ์ ์ฌ์ด์ฆ๋ณด๋ค ๋ ๋์ด๋ ๊ฒฝ์ฐ, ์ฌ์ด์ฆ๋ฅผ ๋์ด๋๊ฒ ํ ๊ฑด์ง ์ค์ด๋ค๊ฒ ํ ๊ฑด์ง ์ ํ ์ ์๋ค. ๊ทธ๋์ ์ด๋ค๊ฒ์ ์ฐ์ ์์๋ฅผ ์ฃผ์ด์ผํ ์ง hugging priority๋ฅผ ์ค์ ํด์ฃผ์ด์ผ ํ๋ค!
hugging priority์ ์ฐ์ ์์๊ฐ ๋ ๋์ผ๋ฉด ๋ด ํฌ๊ธฐ๋ฅผ ์ ์งํ๊ณ , ์ฐ์ ์์๊ฐ ๋ฎ์์ ์ ํฌ๊ธฐ๊ฐ ๋์ด๋๋ค. ๋ฐ๋ผ์ ํฌ๊ธฐ๊ฐ ์ปค์ ธ์ผ ํ๋ ๋ผ๋ฒจ์ ์ฐ์ ์์๋ฅผ ๋ฎ๊ฒ ์ค์ ํด์ฃผ๋ฉด ์๋์ ๊ฐ์ด ํ๋ฉด์ ๊ตฌ์ฑํ ์ ์๋ค.
๋๋ ๋๊ฐ์ ๋ผ๋ฒจ ์ค ์์์๋ ๋ผ๋ฒจ์ ํฌ๊ธฐ๋ฅผ ํฌ๊ฒํ๊ณ ์ถ์ด์, ์์ ์๋ ๋ผ๋ฒจ์ ์ฐ์ ์์๋ฅผ ๋ ๋ฎ๊ฒ! ์ค์ ํด ์ฃผ์๋ค.
๋ ๋ผ๋ฒจ์ ๊ด๊ณ๋ vertical ๋ก ๋์ฌ์ ธ ์๊ธฐ์, vertical์ hugging priority๋ฅผ ์ค์ ํด์ฃผ์๊ณ , ์์ ์ธ๊ธํ๋ ๊ฒ ์ฒ๋ผ ์์ ๋ผ๋ฒจ์ ์ฐ์ ์์๋ฅผ ๋ฎ๊ฒ ์ฃผ๊ณ ์ถ์ด์ 251๋ก ๋์๋ ์๋ฅผ, 250์ผ๋ก ๋ณ๊ฒฝํด์ฃผ์๋ค. ๊ทธ๋ฌ๋ฉด ์๋ฌ๋ ์ฌ๋ผ์ง๊ณ ๋ด๊ฐ ์ํ๋ ๊ฒ์ฒ๋ผ ์์ ๋ผ๋ฒจ์ ํฌ๊ธฐ๊ฐ ์ปค์ง๋ค!
(compression resistance priorty๋ ์ง์ญํ๋ฉด ์์ถ์ ๋ํ ์ ํญ(?) ์ด๋ค. ๊ทธ๋์ compression ์ฐ์ ์์๊ฐ ๋์ผ๋ฉด ์์ ์ ํฌ๊ธฐ๋ฅผ ์ ์งํ๊ณ , ์ฐ์ ์์๊ฐ ๋ฎ์ผ๋ฉด ํฌ๊ธฐ๊ฐ ์ค์ด๋ค๊ฒ ๋๋ค.)
์ฐ์ ์์๋ 1~1000 ๊น์ง 1๋จ์๋ก ์ค์ ์ด ๊ฐ๋ฅํ๋ฐ, 1000์ required, 750์ high, 500์ medium, 250์ low์ ๊ฐ์ด 250 ๋จ์๋ก ๋ฏธ๋ฆฌ ์ง์ ๋ ๊ฐ์ด ์์ด์ ๋ณดํต ์ด๋ ๊ฒ 250์ ๋จ์๋ก ๋ง์ด ์ฌ์ฉํ๋ค.
๋!
๊ฐ๋จํ ์๋ฌ์ง๋ง ๊ธฐ์ตํ๊ธฐ ์ํด ์ ์ด๋๋ค ใ ใ :)