ํ ํ๋ก์ ํธ์ ๊ฐ์ธ ํ๋ก์ ํธ๋ฅผ ํ๋ฉฐ ๋ง์์ ๊ฑธ๋ ธ๋ ๊ธฐ๋ฅ์ด ์์๋ค.
AutoLayout์ ๋ํด ์ดํดํด๋ณด๊ณ ์ถ์ ๋ง์์ด ์ปค์ก๋๋ฐ,
๋๋์ฒด ์ด๋ค ์๋ฆฌ๋ก AutoLayout์ด ์๋ํ๋ ๊ฑธ๊น?
๋๋ถ์ด SnapKit๋ฅผ ๋ชจ๋ ๊ถํ๋๋ฐ, ๋จ์ง ํธ์์ฑ ๋๋ฌธ์ ์ฌ์ฉ์ ํ๊ธฐ์๋ ๋ญ๊ฐ ์์ฌ์ ๋ค.
๊ทธ๋์ AutoLayout์ ์กฐ๊ธ์ฉ ํ๊ธฐ ์์ํ๋ค!
์คํ ๋ ์ด์์์ ๋ทฐ ๊ณ์ธต์ ์กด์ฌํ๋ ๋ทฐ์ ์ฌ์ด์ฆ์ ์์น๋ฅผ ๋์ ์ผ๋ก ๊ณ์ฐ/์กฐ์ ํ๋ ๊ธฐ๋ฅ! [๋งํฌ]
๋ ์ฝ๊ฒ ๋งํ๋ฉด, ์คํ ๋ ์ด์์ ๋๋ถ์ ํ๋ฉด์ UI๊ฐ ์์์ ์กฐ์ ์ด ๋๋ค๊ณ ์ดํดํ๋ฉด ๋๊ฒ ๋ค.
์คํ ๋ ์ด์์์ ํฌํจํด UI๋ฅผ ๊ทธ๋ฆฌ๋ ๋ฐฉ๋ฒ์ 3๊ฐ์ง๋ผ ์ฐพ์๋๋ฐ, ํ๋์ฉ ์ ๋ฆฌํด ๋ณด๊ณ ์ ํ๋ค.
๋จ์ผ ๊ธฐ์ข
์ฌ์ด์ฆ๋ฅผ ํ์ฉํด์ UI์ ์์น๋ฅผ ์ก๋ ๋ฐฉ๋ฒ
์ ์ด๋ฏธ์ง์์ ๋ณผ ์ ์๋ฏ, UIComponent์ frame์ ๊ฐ์ ์ฃผ๋ ๋ฐฉ์์ด๋ค!
UIComponent๋ณ๋ก frame ๊ฐ์ ์ ๊ณตํ์ฌ ํน์ ์์น์ ๋ฐฐ์น ๋ ์ ์๋๋ก ํ๋ ํ์์ธ ์
Pros
1. ๊ฐ์ ๋ช
ํํ๊ฒ ์ ๊ณตํด์ผ ํ๊ธฐ์ ๊ธฐ์ข
์ ๋ง๋ UI๋ฅผ ์๋ฒฝํ๊ฒ ๊ตฌ์ฑํ ์ ์๋ค.
Cons
1. ๋ค๊ธฐ์ข
์คํฌ๋ฆฐ์ ์ง์ํ์ง ์์
2. orientation์ด ๋ฐ๋๋ฉด view์ ํฌ๊ธฐ๊ฐ ์กฐ์ ๋์ง ์์
3. ๋ฌด์๋ณด๋ค ์์ฒญ ๊ท์ฐฎ๊ฒ ๋ค !
์์ฒ๋ผ ์ผ์ผํ ๋ชจ๋ View์ ๊ฐ์ ์ง์ ํด์ค์ผ ํ๋ค๋ณด๋ ๋ฌธ์ ๊ฐ ๋ง์ด ๋ฐ์ํ๋ค๊ณ ํ๋ค.
๋ง์ผ ๋ฐ์ดํฐ์ ๋ณํ(๊ธธ์ด ๋ฑ)๋ ๊ธฐํ ์ธํฐํ์ด์ค์ ๋ณํ๊ฐ ์๊ธฐ๋ฉด ๋ชจ๋ View์ frame ๊ฐ์ ์ฌ๊ณ์ฐํด์ผํ๋ค.
๊ฐ๋ฐ์์ ์๋๋๋ก ๋ชจ๋ view์ ์์น๋ฅผ ์ก์ ์ ์์ด ์ฌ๋ฌ๋ชจ๋ก ์ ์ฐํ๋ค๊ณ ๋ณผ ์ ์์ผ๋,
์ค์ ์ฌ์ฉํ ๋๋ ํ
์คํธ ๊ธฐ๊ฐ์ ์ ๋ง ์ค๋ ๋๊ณ ๋ด์ผํ๋ ๋ฌธ์ ๊ฐ ์๋ค.
๋ฐ๋ผ์ ์ด๋ฅผ ๊ฐ์ ํ๊ณ ์ autoresizingMask๋ผ๋๊ฒ ์ฌ์ฉ๋์๋ค๊ณ ํ๋ค!
AutoResizingMask๋ view์ frame์ด superView frame์ ๋ฐ๋ผ ํจ๊ป ๋ณ๊ฒฝ๋๋ ๊ตฌ์กฐ.
์๋ฅผ ๋ค์ด ํธ๋ํฐ์ ๋ฐฉํฅ์ด portrait, landscape์ผ๋ก ๋ฐ๋์์ ๋ view์ frame์ด ๋ง์ถฐ ๋ณ๊ฒฝ๋๋ ํ์!
๋จ, ํด๋ํฐ์ ์์ง์, ์ ํ๋ ์๋ฆผ์ด ์ค๋ ๋ฑ ์ธ๋ถ ์๊ทน์๋ง ๊ฐ์ด ๋ฐ๋๊ณ
์ฑ ๋ด ์ฝํ ์ธ ๊ธธ์ด์ ๋ณํ, ๋์ ์ฝํ ์ธ ์ง์ ๊ฐ์ ๋ด๋ถ ๋ณํ์๋ ์ํฅ์ด ์๋ค๊ณ ํ๋ค.
์ฝํ
์ธ ๋ณํ์ ๋ํด ์ ํ์ ์ผ๋ก (์ธ๋ถ๋ง ๐๐ปโโ๏ธ, ๋ด๋ถ๋ ๐
๐ปโโ๏ธ) ๋์ํ๋ ๋ถ๋ถ์ ๋ณด๋ฉด,
์ํฉ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ผ๋ Frame์ผ๋ก ๊ฐ์ ์ง์ ํ๋ ๋ฐฉ์์ ๊ทธ๋ค์ง ์ ํธ๋์ง ์๊ฒ ๋ค๋ ์๊ฐ์ด ๋ ๋ค.
Frame Based Layout์ ๊ฐ์ ํ ๋ฐฉ์์ผ๋ก size๋ง์ผ๋ก ๊ท๊ฒฉ์ ์ก๋ ํ์ [์ฐธ๊ณ ๋งํฌ]
์ ๋ด์ฉ๋ง ๋ณด๋ฉด size๋ ์๋นํ ์ฌ์๋ณด์ด์ง๋ง, ์ค์ง์ ์ผ๋ก ์ฌ์ฉ์ด ๋์ง ์๋๋ค๊ณ ํ๋ค!
Size๋ฅผ ์ฌ์ฉํ๋ฉด ๊ธฐ๊ธฐ๋ณ ๋์์ ๊ฐ๋ฅํ์ง๋ง ์ฌ์ ํ ๋ฌธ์ ์ ์ด ์๋ค๊ณ ํ๋๋ฐ, ํ๋ฒ ๊น๊ฒ ์์๋ด์ผ๊ฒ ๋ค.
์คํ ๋ ์์์์ ํ๋ ์ ๋ ์ด์์์ฒ๋ผ ๊ฐ์ ์ง์ ํ๋ ํ์์ด ์๋ View๋ผ๋ฆฌ์ ๊ด๊ณ
๋ค๋ฅธ ๋ง๋ก '๋์ ๋์ ๊ฑฐ๋ฆฌ๊ฐ ์ผ๋ง๋ ๋จผ์ง'๋ฅผ ๊ธฐ์ค์ผ๋ก frame์ ์ก๋๋ค๊ณ ์ดํดํ๋ฉด ๋๊ฒ ๋ค.
๋ค์ํ ์ ์ฝ๋ค์ด ์กด์ฌํ๋๋ฐ ์ ๊น ๋ฐฐ์ด ๊ฑธ ์๊ฐํ๋ฉด -
์ด์ธ์ baseLineAnchor ๋ฑ ๋ค์ํ ์ ์ฝ๋ค์ด ์กด์ฌํ๋ฉฐ ๋ด๊ฐ ์ค์ ํ๊ณ ์ ํ๋ View์์ ๊ด๊ณ๋ฅผ ๋งบ์ด ๊ฐ๊ฒฉ์ ๋ ์ ์๋ค.