iOS Layout์ ์ ์ฉํ๋ ๊ฒ์๋ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค. autolayout๋ง์ด ์ ๋ต์ด๋ผ ์๊ฐํ๋๋ฐ, ์ค์ฐ์ด์๋ค. ์ด ๋ถ๋ถ์ ์ฃผ๊ธฐ์ ์ธ ์ ๋ฐ์ดํธ๋ฅผ ํ๋๋ก ํ๊ฒ ๋ค.
Storyboard
์ฅ์ ์ผ๋ก๋ UI ๊ตฌ์ฑ์ ๋์ผ๋ก ํ์ธํ ์ ์๋ค๋ ์ ์ด๋ค. ๋ฐ๋ก ์๊ฐ์ ์ผ๋ก ํ์ ํ ์ ์๋ค. ๋ง์ฐ์ค๋ก ์ ์ฝ๊ฒ ๋ ์ด์์์ ๊ตฌ์ฑํ ์ ์๊ณ autolayout๋ ๋ณด๋ค ์์ฝ๋ค.
ํ์ง๋ง ๋จ์ ์ด ๋ณด๋ค ๋ง๋ค. ์ฌ๋ฌ constraint๋ฅผ ๋์ ์ผ๋ก ์ ์ฉํด์ผ ํ๋ ํ๋ฉด์ด ์๋ค๋ฉด constraint๋ฅผ ๋ณ์๋ก ๋นผ์ ์์ ํด์ผ ํ๋ค. ๋ history ํ์ ๋ ์ด๋ ต๋ค. ๋ก๋ฉ ์๊ฐ๋ ์ค๋๊ฑธ๋ฆฐ๋ค. ๋ ์ฌ์ฌ์ฉ์ ํ๋๋ฐ ์์ด์๋ ์ด๋ ต๋ค. merge ๊ฒฝ์ฐ conflict๊ฐ ๋๋ฉด xml์ ์ด์ด์ ์ฒ๋ฆฌํด์ค์ผ ํ๋ค. ์ ๋๋ก ์ดํดํ๊ณ ์์ง ์๋ค๋ฉด ์๋นํ ๋ณต์กํ๋ค.
- ์ฅ์
- ๋น ๋ฅธ ์ด๊ธฐํ
- ์๊ฐํ
- ๋ฎ์ ์ง์ ์ฅ๋ฒฝ
- view code๊ฐ ์์ด์ ธ ์์ค์ฝ๋๊ฐ ์งง์์ง
- ๋จ์
- ๊ธด ๋ก๋ฉ ์๊ฐ
- ์ ์ง๋ณด์, ์ฌ์ฌ์ฉ ์ด๋ ค์
- conflict ํด๊ฒฐ ์ด๋ ค์
Frame
๋ทฐ์ ํ๋ ์์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ ์ํ๋ฉด ์ ์ฐํ๋ค. ์ด๋ค ๋ณํ๊ฐ ์๊ฒจ๋ ๋์ํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋ฌ๋ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ง์ ๊ด๋ฆฌํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ง์ ๋ ธ๋ ฅ์ด ํ์ํ๋ค. ๊ฐ์ฅ ํจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ์ด์ง๋ง ๋์ด๋๋ ๋ง์ด ์ด๋ ค์์ง๋ค. ํ์ง๋ง ์ถ๊ฐ์ ์ธ ์ฝ๋๊ฐ ๋ค์ด๊ฐ์ง ์๊ธฐ ๋๋ฌธ์ ๋น ๋ฅด๋ค.
- ์ฅ์
- ์ด๋ ํ ๋ณํ์๋ ๋์ํ ์ ์์
- ์์น, ํฌ๊ธฐ๋ง์ ์ ๊ฒฝ์ฐ๋ฉด ๋จ
- ๋จ์
- ๋ณํ์ ๋ฐ๋ฅธ ์ฒ๋ฆฌ๊ฐ ํ์ํจ
- autolayout ๋๋น ์ถ๊ฐ์ ์ธ ๋์์ด ์๊ณ ํ๋ก๊ทธ๋๋จธ์๊ฒ ๋งก๊ธฐ๊ธฐ ๋๋ฌธ์ ๋น ๋ฆ
Autolayout
์ ์ฝ ์กฐ๊ฑด์ ํ์ฉํ์ฌ ์ ์ํ๋ ๋ฐฉ์์ด๋ค. ๊ด๊ณ๋ง ์ ์ํด๋๋ฉด, ์ผ์ข ์ ์์์ ํตํด layout์ ์ฌ๊ณ์ฐํ๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ฝ๋๋ฅผ ์ ๊ตฌ์ฑํด๋๋ฉด ํ๋ฉด ๋ณํ์ ๋์ํ ํ์๊ฐ ์๋ค๋ ์ฅ์ ์ด ์๋ค.
ํ์ง๋ง layout์ ๊ฒฐ๊ตญ์๋ ์ฌ๊ณ์ฐํ๋ ๋ก์ง์ด ์ถ๊ฐ์ ์ผ๋ก ์๊ธฐ ๋๋ฌธ์ ์๋๊ฐ ๋๋ฆฌ๋ค. ์ค์ ๋ก ์ฝ๋๋ก ์์ฑํ๊ฒ ๋๋ค๋ฉด ์ง๊ด์ฑ์ด ์กฐ๊ธ์ ๋จ์ด์ง๋ค. ์ค๋ณต๋๋ ์ฝ๋๊ฐ ๋ง๋ค.
- ์ฅ์
- ์ ์ฝ์ ํตํด ์ ์ํ๊ธฐ ๋๋ฌธ์ ํ ์ผ์ด ์ค์ด๋ฆ
- ์๋์ผ๋ก layout์ ์ฌ๊ณ์ฐํด์ค
- ๋จ์
- ๋๋ฆผ
- ์ฝ๋๋ก ์์ฑ์ ํ์์๋ ๋ก์ง์ด ๋ค์ด๊ฐ
- ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์กฐ๊ธ ๋์
cc. ์ฌ๊ธฐ์ stackView๊ฐ ์ฑ๋ฅ์ด ์ ์ข๋ค๋ ์ ์ ํ์ธํ ์ ์์๋ค. ์ญ์ ๋ญ๊ฐ ๋๋ฌด ์ฌ์ฐ๋ฉด ์ฑ๋ฅ์ ๋จ์ด์ง๋ค.
๋ง๋ฌด๋ฆฌ
์ต์ ๊ธฐ์ ์ด๋ผ ํด์ ๋ฌด์กฐ๊ฑด์ ์ผ๋ก ์ข์ ๊ฒ์ด ์๋์ ๋ฐฐ์ ๋ค. ๋ฌธ์ ์ ์ํฉ์ ๋ฐ๋ผ ์ ํํ ์ ์๋ ์ ์ฐํ ์ฌ๊ณ ๋ฅผ ๊ฐ์ง ์์ง๋์ด๊ฐ ๋๋ ๊ฒ์ด ์ค์ํ๋ค๋ ๊ฒ์ ๋๊ผ๋ค. autolayout์ด ๋๋ฆฌ๋ค๋ ์ ์ ๋ฐฐ์ธ ์ ์์ด ์ข์๋ค. ๋!
layoutBox/LayoutFrameworkBenchmark
ํ์ง๋ง ์ฑ๋ฅ์ ์ผ๋ก ์ข์ง ์๋ค.