iOS: Anatomy of a Constraint
๋ทฐ ๊ณ์ธต ๊ตฌ์กฐ์ ๋ ์ด์์์ ์ผ๋ จ์ ์ ํ ๋ฐฉ์ ์์ผ๋ก ์ ์๋๋ค. ๊ฐ ์ ์ฝ์ ๋จ์ผ ๋ฐฉ์ ์์ ๋ํ๋ธ๋ค.
์ด ์ ์ฝ ์กฐ๊ฑด์ ๋นจ๊ฐ์ ๋ทฐ์ ์ ํ ๊ฐ์ฅ์๋ฆฌ๊ฐ ํ๋์ ๋ทฐ์ ํํ ๊ฐ์ฅ์๋ฆฌ ์ดํ 8.0 ํฌ์ธํธ์ฌ์ผ ํจ์ ๋ํ๋ธ๋ค. ๋ฐฉ์ ์์๋ ์ฌ๋ฌ ๋ถ๋ถ์ด ์๋ค.
- Item 1 → ๋ฐฉ์ ์์ ์ฒซ๋ฒ์งธ ํญ๋ชฉ(์ด ๊ฒฝ์ฐ RedView)์ด๋ค. ํญ๋ชฉ์ ๋ทฐ ๋๋ Layout Guide ์ด์ด์ผ ํ๋ค.
- Attribute 1 → ์ฒซ๋ฒ์งธ ํญ๋ชฉ(์ด ๊ฒฝ์ฐ RedView์ Leading)์ ์ ํ๋ ์์ฑ์ด๋ค.
- Relationship → ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ ์ฌ์ด์ ๊ด๊ณ. ๊ด๊ณ๋ ๊ฐ์, ํฌ๊ฑฐ๋ ๊ฐ์, ์๊ฑฐ๋ ๊ฐ์์ ์ธ ๊ฐ์ง ๊ฐ ์ค ํ๋๋ฅผ ๊ฐ์ง ์ ์๋ค. ์ด ๊ฒฝ์ฐ ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ์ด ๋์ผํ๋ค.
- Multiplier → Attribute 2์ ๊ฐ์ ์ด ๋ถ๋ ์์์ ์๋ฅผ ๊ณฑํ๋ค. ์ด ๊ฒฝ์ฐ Multiplier๋
1.0
์ด๋ค. - Item 2 → ๋ฐฉ์ ์์ ๋๋ฒ์งธ ํญ๋ชฉ(์ด ๊ฒฝ์ฐ BlueView)์ด๋ค. ์ฒซ๋ฒ์งธ ํญ๋ชฉ๊ณผ ๋ฌ๋ฆฌ ๋น์๋ ์ ์๋ค.
- Attribute 2 → ๋๋ฒ์งธ ํญ๋ชฉ(์ด ๊ฒฝ์ฐ BlueView์ Trailing)์ ์ ํ๋ ์์ฑ์ด๋ค. ๋๋ฒ์งธ ํญ๋ชฉ์ด ๋น์ด์์ผ๋ฉด ์ด ๊ฐ์
Not an Attribute
์ด์ด์ผ ํ๋ค. - Constant → ์์ ๋ถ๋ ์์์ ์คํ์
(์ด ๊ฒฝ์ฐ
8.0
) ์ด ๊ฐ์ Attribute 2์ ๊ฐ์ ์ถ๊ฐ๋๋ค.
๋๋ถ๋ถ์ ์ ์ฝ์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์์ ๋ ํญ๋ชฉ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ ์ํ๋ค. ์ด๋ฌํ ํญ๋ชฉ์ ๋ทฐ ๋๋ Layout Guide์ ๋ํ๋ผ ์ ์๋ค. ์ ์ฝ ์กฐ๊ฑด์ ๋จ์ผ ํญ๋ชฉ์ ์๋ก ๋ค๋ฅธ ๋ ์์ฑ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ ์ ํ ์๋ ์๋ค. (์: ํญ๋ชฉ์ ๋์ด์ ๋๋น ์ฌ์ด์ ์ข
ํก๋น ์ค์ ). ํญ๋ชฉ์ ๋์ด ๋๋ ๋๋น์ ์์ ๊ฐ์ ํ ๋น ํ ์๋ ์๋ค. ์์ ๊ฐ์ผ๋ก ์์
ํ ๋ ๋๋ฒ์งธ ํญ๋ชฉ์ ๋น์๋๊ณ ๋๋ฒ์งธ ์์ฑ์ Not An Attribute
๋ก ์ค์ ๋๋ฉฐ Constant
๋ 0.0์ผ๋ก ์ค์ ๋๋ค.
์คํ ๋ ์ด์์ ์์ฑ
์คํ ๋ ์ด์์์์ ์์ฑ์ ์ ํ ๋ ์ ์๋ ๊ธฐ๋ฅ์ ์ ์ํ๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฌ๊ธฐ์๋ ๋์ด, ๋๋น, ์์ง ๋ฐ ์ํ ์ค์ฌ๋ฟ๋ง ์๋๋ผ ๋ค ๊ฐ์ ๋ชจ์๋ฆฌ(leading, trailing, top, bottom)๊ฐ ํฌํจ๋๋ค. ํ ์คํธ ํญ๋ชฉ์๋ ํ๋ ์ด์์ ๊ธฐ๋ณธ ์์ฑ์ด ์๋ค.
์ํ ๋ฐฉ์ ์
์ด๋ฌํ ๋ฐฉ์ ์์ ์ฌ์ฉํ ์์๋ ๊ด๋ฒ์ํ ๋งค๊ฐ ๋ณ์ ๋ฐ ์์ฑ์ ํตํด ๋ค์ํ ์ ํ์ ์ ์ฝ ์กฐ๊ฑด์ ์์ฑ ํ ์ ์๋ค. ๋ทฐ ์ฌ์ด์ ๊ณต๊ฐ์ ์ ์ํ๊ณ , ๋ทฐ์ ๊ฐ์ฅ์๋ฆฌ๋ฅผ ์ ๋ ฌํ๊ณ , ๋ ๋ทฐ์ ์๋์ ํฌ๊ธฐ๋ฅผ ์ ์ํ๊ฑฐ๋ ๋ทฐ์ ์ข ํก๋น๋ฅผ ์ ์ ํ ์๋ ์๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ ์์ฑ์ด ํธํ๋๋ ๊ฒ์ ์๋๋ค.
์์ฑ์๋ ๋ ๊ฐ์ง ๊ธฐ๋ณธ ์ ํ์ด ์๋ค. ํฌ๊ธฐ ์์ฑ (์ : Height ๋ฐ Width) ๋ฐ ์์น ์์ฑ (์ : Leading, Left ๋ฐ Top). ํฌ๊ธฐ ์์ฑ์ ์์น๋ฅผ ํ์ํ์ง ์๊ณ ํญ๋ชฉ์ ํฌ๊ธฐ๋ฅผ ์ง์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์์น ์์ฑ์ ๋ค๋ฅธ ํญ๋ชฉ๊ณผ ๊ด๋ จ๋ ํญ๋ชฉ์ ์์น๋ฅผ ์ง์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ๊ทธ๋ฌ๋ ํญ๋ชฉ์ ํฌ๊ธฐ์ ๋ํ ํ์๋ ์๋ค.
์ด๋ฌํ ์ฐจ์ด์ ์ ์ผ๋์๋๊ณ ๋ค์ ๊ท์น์ด ์ ์ฉ๋๋ค.
- ํฌ๊ธฐ ์์ฑ์ ์์น ์์ฑ์ผ๋ก ์ ํ ํ ์ ์๋ค.
- ์์น ์์ฑ์๋ ์์ ๊ฐ์ ํ ๋น ํ ์ ์๋ค.
- ์์น ์์ฑ์๋ ๋น์๋ณ multiplier (1.0 ์ด์ธ์ ๊ฐ)๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
- ์์น ์์ฑ์ ๊ฒฝ์ฐ ์์ง ์์ฑ์ ์ํ ์์ฑ์ผ๋ก ์ ํ ํ ์ ์๋ค.
- ์์น ์์ฑ์ ๊ฒฝ์ฐ Leading ๋๋ Trailing ์์ฑ์ ์ผ์ชฝ ๋๋ ์ค๋ฅธ์ชฝ ์์ฑ์ผ๋ก ์ ํ ํ ์ ์๋ค.
์๋ฅผ ๋ค์ด ํญ๋ชฉ์ Top์ ์์ ๊ฐ 20.0์ผ๋ก ์ค์ ํ๋ ๊ฒ์ ์ถ๊ฐ ์ปจํ ์คํธ ์์ด๋ ์๋ฏธ๊ฐ ์๋ค. ํญ์ ๋ค๋ฅธ ํญ๋ชฉ๊ณผ ๊ด๋ จํ์ฌ ํญ๋ชฉ์ ์์น ์์ฑ์ ์ ์ํด์ผํ๋ค (์ : ์ํผ ๋ทฐ์ ์๋จ ์๋ 20.0 ํฌ์ธํธ). ๊ทธ๋ฌ๋ ํญ๋ชฉ์ ๋์ด๋ฅผ 20.0์ผ๋ก ์ค์ ํ๋ ๊ฒ์ ์๋ฒฝํ๊ฒ ์ ํจํ๋ค.
// Setting a constant height
View.height = 0.0 * NotAnAttribute + 40.0
// Setting a fixed distance between two buttons
Button_2.leading = 1.0 * Button_1.trailing + 8.0
// Aligning the leading edge of two buttons
Button_1.leading = 1.0 * Button_2.leading + 0.0
// Give two buttons the same width
Button_1.width = 1.0 * Button_2.width + 0.0
// Center a view in its superview
View.centerX = 1.0 * Superview.centerX + 0.0
View.centerY = 1.0 * Superview.centerY + 0.0
// Give a view a constant aspect ratio
View.height = 2.0 * View.width + 0.0
ํ ๋น์ด ์๋ ํ๋ฑ
๋ฐฉ์ ์์ ํ ๋น์ด ์๋ ํ๋ฑ์ ๋ํ๋ธ๋ค.
์คํ ๋ ์ด์์์ด ์ด๋ฌํ ๋ฐฉ์ ์์ ํ ๋ ์ค๋ฅธ์ชฝ์ ๊ฐ์ ์ผ์ชฝ์ ํ ๋นํ๋ ๊ฒ์ด ์๋๋ค. ๋์ ๊ด๊ณ๋ฅผ true๋ก ๋ง๋๋ ์์ฑ 1๊ณผ ์์ฑ 2์ ๊ฐ์ ๊ณ์ฐํ๋ค. ์ฆ, ๋ฐฉ์ ์์ ํญ๋ชฉ์ ์์ ๋กญ๊ฒ ์ฌ์ ๋ ฌ ํ ์ ์๋ค. ์๋ฅผ ๋ค์ด, ๋ชฉ๋ก 3-2์ ๋ฐฉ์ ์์ Note์ ํด๋น ๋ฐฉ์ ์๊ณผ ๋์ผํ๋ค.
// Setting a fixed distance between two buttons
Button_1.trailing = 1.0 * Button_2.leading - 8.0
// Aligning the leading edge of two buttons
Button_2.leading = 1.0 * Button_1.leading + 0.0
// Give two buttons the same width
Button_2.width = 1.0 * Button.width + 0.0
// Center a view in its superview
Superview.centerX = 1.0 * View.centerX + 0.0
Superview.centerY = 1.0 * View.centerY + 0.0
// Give a view a constant aspect ratio
View.width = 0.5 * View.height + 0.0
ํญ๋ชฉ์ ์ฌ์ ๋ ฌํ ๋ multiplier์ constant๋ฅผ ๋ฐ์ ํด์ผ ํ๋ค. ์๋ฅผ ๋ค์ด constant 8.0์ -8.0์ multiplier์ ์น์ 2.0๋ 0.5์ด๋ค. constant 0.0๊ณผ multiplier 1.0์ ๋ณ๊ฒฝํ์ง ์๋๋ค.
์คํ ๋ ์ด์์์ ๋์ผํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ค. ์ด์์ ์ผ๋ก๋ ์๋๋ฅผ ๊ฐ์ฅ ๋ช ํํ๊ฒ ์ค๋ช ํ๋ ์๋ฃจ์ ์ ์ ํํด์ผ ํ๋ค. ๊ทธ๋ฌ๋ ๋ค๋ฅธ ๊ฐ๋ฐ์๋ ์์ฌํ ์ฌ์ง์์ด ์ด๋ค ์๋ฃจ์ ์ด ๊ฐ์ฅ ์ข์์ง์ ๋ํด ๋์ํ์ง ์์ ๊ฒ์ด๋ค. ์ฌ๊ธฐ์ ์ผ๊ด์ฑ์ด ์๋ ๊ฒ์ด ์ณ์ ๊ฒ๋ณด๋ค ๋ซ๋ค. ์ ๊ทผ ๋ฐฉ์์ ์ ํํ๊ณ ํญ์ ์ด๋ฅผ ๊ณ ์ํ๋ค๋ฉด ์ฅ๊ธฐ์ ์ผ๋ก ๋ฌธ์ ๋ฅผ ๋ ๊ฒฝํํ๊ฒ ๋ ๊ฒ์ด๋ค. ์๋ฅผ ๋ค์ด ์ด ๊ฐ์ด๋์์๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝํ ๊ท์น์ ์ฌ์ฉํ๋ค.
- ๋ถ์ multiplier๋ณด๋ค ์ ์ multiplier๊ฐ ์ ํธ๋๋ค.
- ์์ constant๋ณด๋ค ์์ constant๊ฐ ์ ํธ๋๋ค.
- ๊ฐ๋ฅํ ๊ฒฝ์ฐ ๋ทฐ๋ ๋ ์ด์์ ์์๋ก ๋ํ๋์ผํ๋ค: leading to trailing, top to bottom
๋ชจํธํ์ง ์๊ณ ๋ง์กฑ์ค๋ฌ์ด ๋ ์ด์์ ๋ง๋ค๊ธฐ
์ด ๋ถ๋ถ์ ๊ฐ๋ ๋ณด๋ค ์ง์ ์ ์ธ ์ค์ต์ด ์ฃผ๋ฅผ ์ด๋ฃจ๊ณ ์์ด ๊ฑด๋๋
์ ์ฝ ๋ถํ๋ฑ
์ง๊ธ๊น์ง ๋ชจ๋ ์ํ์์ ์ ์ฝ ์กฐ๊ฑด์ด ๋๋ฑํจ์ ๋ณด์ฌ์ฃผ์์ง๋ง ์ด๊ฒ์ ์ด์ผ๊ธฐ์ ์ผ๋ถ์ผ๋ฟ์ด๋ค. ์ ์ฝ์ ๋ถํ๋ฑ์ ๋ํ๋ผ์๋ ์๋ค. ํนํ ์ ์ฝ ์กฐ๊ฑด์ ๊ด๊ณ๋ ๊ฐ๊ฑฐ๋, ํฌ๊ฑฐ๋ ๊ฐ๊ฑฐ๋, ์๊ฑฐ๋ ๊ฐ์ ์ ์๋ค.
์๋ฅผ ๋ค์ด ์ ์ฝ ์กฐ๊ฑด์ ์ฌ์ฉํ์ฌ ๋ทฐ์ ์ต์ ๋๋ ์ต๋ ํฌ๊ธฐ๋ฅผ ์ ์ํ ์ ์๋ค.
// Setting the minimum width
View.width >= 0.0 * NotAnAttribute + 40.0
// Setting the maximum width
View.width <= 0.0 * NotAnAttribute + 280.0
As soon as you start using inequalities, the two constraints per view per dimension rule breaks down. ํญ์ ๋จ์ผ ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ ๊ฐ์ ๋ถ๋ฑ์์ผ๋ก ๋ฐ๊ฟ ์ ์๋ค.
// A single equal relationship
Blue.leading = 1.0 * Red.trailing + 8.0
// Can be replaced with two inequality relationships
Blue.leading >= 1.0 * Red.trailing + 8.0
Blue.leading <= 1.0 * Red.trailing + 8.0
๋ ๋ถ๋ฑ์์ด ํญ์ ๋จ์ผ ๊ฐ์ ๊ด๊ณ์ ๊ฐ์ง๋ ์๊ธฐ ๋๋ฌธ์ ๊ทธ ๋ฐ๋๊ฐ ํญ์ ์ฐธ์ ์๋๋ค. ์๋ฅผ ๋ค์ด ๋ชฉ๋ก 3-3์ ๋ถ๋ฑ์์ ๋ทฐ์ ๋๋น์ ๋ํด ๊ฐ๋ฅํ ๊ฐ์ ๋ฒ์๋ฅผ ์ ํํ์ง๋ง ๊ทธ ์์ฒด๋ก๋ ๋๋น๋ฅผ ์ ์ํ์ง ์๋๋ค. ์ด ๋ฒ์ ๋ด์์ ๋ทฐ์ ์์น์ ํฌ๊ธฐ๋ฅผ ์ ์ํ๋ ค๋ฉด ์ถ๊ฐ ์ํ ์ ์ฝ ์กฐ๊ฑด์ด ํ์ํ๋ค.
์ ์ฝ ์ฐ์ ์์
๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ์ ์ฝ ์กฐ๊ฑด์ด ํ์ํ๋ค. ์คํ ๋ ์ด์์์ ๋ชจ๋ ์ ์ฝ ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ ์๋ฃจ์ ์ ๊ณ์ฐํด์ผ ํ๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ค๋ฅ๊ฐ ์๋ค. ์คํ ๋ ์ด์์์ ๋ง์กฑํ ์ ์๋ ์ ์ฝ ์กฐ๊ฑด์ ๋ํ ์ ๋ณด๋ฅผ ์ฝ์์ ์ธ์ํ๊ณ ์ค๋จํ ์ ์ฝ ์กฐ๊ฑด ์ค ํ๋๋ฅผ ์ ํํ๋ค. ๊ทธ๋ฐ ๋ค์ ์ ์ฝ ์กฐ๊ฑด์ด ๊นจ์ง์ง ์๊ณ ์๋ฃจ์ ์ ๋ค์ ๊ณ์ฐํ๋ค.
์ ํ์ ์ ์ฝ ์กฐ๊ฑด์ ๋ง๋ค ์๋ ์๋ค. ๋ชจ๋ ์ ์ฝ ์กฐ๊ฑด์ 1์์ 1000 ์ฌ์ด์ ์ฐ์ ์์๋ฅผ ๊ฐ๋๋ค. ์ฐ์ ์์๊ฐ 1000์ธ ์ ์ฝ ์กฐ๊ฑด์ด ํ์ํ๋ค. ๋ค๋ฅธ ๋ชจ๋ ์ ์ฝ์ ์ ํ ์ฌํญ์ด๋ค.
์๋ฃจ์ ์ ๊ณ์ฐํ ๋ ์คํ ๋ ์ด์์์ ๊ฐ์ฅ ๋์ ์์์์ ๊ฐ์ฅ ๋ฎ์ ์์๋ก ๋ชจ๋ ์ ์ฝ ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ ค๊ณ ํ๋ค. ์ ํ์ ์ ์ฝ ์กฐ๊ฑด์ ์ถฉ์กฑํ ์ ์๋ ๊ฒฝ์ฐ ํด๋น ์ ์ฝ ์กฐ๊ฑด์ ๊ฑด๋๋ฐ๊ณ ๋ค์ ์ ์ฝ ์กฐ๊ฑด์ผ๋ก ๊ณ์ ์งํํ๋ค.
์ ํ์ ์ ์ฝ ์กฐ๊ฑด์ ์ถฉ์กฑํ ์ ์๋๋ผ๋ ๋ ์ด์์์ ์ํฅ์ ๋ฏธ์น ์ ์๋ค. ์ ์ฝ ์กฐ๊ฑด์ ๊ฑด๋ ๋ด ํ ๋ ์ด์์์ ๋ชจํธ์ฑ์ด ์์ผ๋ฉด ์์คํ ์ ์ ์ฝ ์กฐ๊ฑด์ ๊ฐ์ฅ ๊ฐ๊น์ด ์๋ฃจ์ ์ ์ ํํ๋ค. ์ด๋ฐ์์ผ๋ก ๋ง์กฑ์ค๋ฝ์ง์์ ์ ํ์ ์ ์ฝ์ ๋ทฐ๋ฅผ ๋์ด๋น๊ธฐ๋ ํ์ผ๋ก ์์ฉํ๋ค.
์ ํ์ ์ ์ฝ๊ณผ ๋ถํ๋ฑ์ ์ข ์ข ํจ๊ป ์๋ํ๋ค. ์๋ฅผ ๋ค์ด, ๋ชฉ๋ก 3-4์์ ๋ ๋ถ๋ฑ์์ ๋ํด ๋ค๋ฅธ ์ฐ์ ์์๋ฅผ ์ ๊ณตํ ์ ์๋ค. ํฌ๊ฑฐ๋ ๊ฐ์ ๊ด๊ณ๊ฐ ํ์ํ ์ ์์ผ๋ฉฐ (์ฐ์ ์์ 1000), ์๊ฑฐ๋ ๊ฐ์ ๊ด๊ณ์ ์ฐ์ ์์๊ฐ ๋ ๋ฎ๋ค (์ฐ์ ์์ 250). ์ด๋ ํ๋์ ๋ทฐ๊ฐ ๋นจ์ฐ์ ๋ทฐ์์ 8.0 ํฌ์ธํธ๋ณด๋ค ๊ฐ๊น์ธ ์ ์์์ ์๋ฏธํ๋ค. ๊ทธ๋ฌ๋ ๋ค๋ฅธ ์ ์ฝ์ผ๋ก ์ธํด ๋ ๋ฉ๋ฆฌ ๋จ์ด์ง ์ ์๋ค. ๊ทธ๋๋ ์ ํ์ ์ ์ฝ ์กฐ๊ฑด์ ๋ ์ด์์์ ๋ค๋ฅธ ์ ์ฝ ์กฐ๊ฑด์ด ์ฃผ์ด์ก์ ๋ ํ๋์ ๋ทฐ๋ฅผ ๋นจ๊ฐ์ ๋ทฐ์ชฝ์ผ๋ก ๋น๊ฒจ ๊ฐ๋ฅํ 8.0 ํฌ์ธํธ ๊ฐ๊ฒฉ์ ๊ฐ๊น๊ฒ ๋ง๋ ๋ค.
๊ณ ์ ์ฝํ ์ธ ํฌ๊ธฐ
์ง๊ธ๊น์ง ๋ชจ๋ ์์ ๋ ์ ์ฝ ์กฐ๊ฑด์ ์ฌ์ฉํ์ฌ ๋ทฐ์ ์์น์ ํฌ๊ธฐ๋ฅผ ๋ชจ๋ ์ ์ํ๋ค. ๊ทธ๋ฌ๋ ์ผ๋ถ ๋ทฐ๋ ํ์ฌ ์ฝํ ์ธ ๋ฅผ ๊ณ ๋ คํ ๋ ์์ฐ์ค๋ฌ์ด ํฌ๊ธฐ๋ฅผ ๊ฐ๋๋ค. ์ด๋ฅผ ๊ณ ์ ์ฝํ ์ธ ํฌ๊ธฐ๋ผ๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด ๋ฒํผ์ ๊ณ ์ ์ฝํ ์ธ ํฌ๊ธฐ๋ ์ ๋ชฉ ํฌ๊ธฐ์ ์์ ์ฌ๋ฐฑ์ ๋ํ ๊ฒ์ด๋ค.
๋ชจ๋ ๋ทฐ์ ๊ณ ์ ์ฝํ ์ธ ํฌ๊ธฐ๊ฐ ์๋ ๊ฒ์ ์๋๋ค. ๊ทธ๋ ๊ฒ ํ๋ ๋ทฐ์ ๊ฒฝ์ฐ ๋ด์ฅ ์ฝํ ์ธ ํฌ๊ธฐ๋ ๋ทฐ์ ๋์ด, ๋๋น ๋๋ ๋ ๋ค๋ฅผ ์ ์ ํ ์ ์๋ค. ํ 3-1์๋ ๋ช ๊ฐ์ง ์๊ฐ ๋์ด๋์ด ์๋ค.
๋ทฐ | ๊ณ ์ ์ฝํ ์ธ ํฌ๊ธฐ |
---|---|
UIView, NSView | ๋ณธ์ง์ ์ธ ์ฝํ ์ธ ํฌ๊ธฐ๊ฐ ์์ |
์ฌ๋ผ์ด๋ | ๋๋น(iOS)๋ง ์ ์ํ๋ค. ์ฌ๋ผ์ด๋์ ์ ํ(OS X)์ ๋ฐ๋ผ ๋๋น, ๋์ด ๋๋ ๋ ๋ค๋ฅผ ์ ์ํ๋ค. |
๋ ์ด๋ธ, ๋ฒํผ, ์ค์์น ๋ฐ ํ ์คํธ ํ๋ | ๋์ด์ ๋๋น๋ฅผ ๋ชจ๋ ์ ์ํ๋ค. |
ํ ์คํธ๋ทฐ ๋ฐ ์ด๋ฏธ์ง๋ทฐ | ๊ณ ์ ์ฝํ ์ธ ํฌ๊ธฐ๋ ๋ค๋ฅผ ์ ์๋ค. |
๊ธฐ๋ณธ ์ฝํ ์ธ ํฌ๊ธฐ๋ ๋ทฐ์ ํ์ฌ ์ฝํ ์ธ ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค. ๋ ์ด๋ธ ๋๋ ๋ฒํผ์ ๊ณ ์ ์ฝํ ์ธ ํฌ๊ธฐ๋ ํ์๋๋ ํ ์คํธ์ ์๊ณผ ์ฌ์ฉ๋ ๊ธ๊ผด์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค. ๋ค๋ฅธ ๋ทฐ์ ๊ฒฝ์ฐ ๊ณ ์ ์ฝํ ์ธ ํฌ๊ธฐ๊ฐ ํจ์ฌ ๋ ๋ณต์กํ๋ค. ์๋ฅผ ๋ค์ด, ๋น ์ด๋ฏธ์ง ๋ทฐ์๋ ๊ณ ์ ์ฝํ ์ธ ํฌ๊ธฐ๊ฐ ์๋ค. ํ์ง๋ง ์ด๋ฏธ์ง๋ฅผ ์ถ๊ฐํ์์๋ง ๊ณ ์ ์ฝํ ์ธ ํฌ๊ธฐ๊ฐ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ก ์ค์ ๋๋ค.
ํ ์คํธ๋ทฐ์ ๊ณ ์ ์ฝํ ์ธ ํฌ๊ธฐ๋ ์ฝํ ์ธ , ์คํฌ๋กค ์ฌ์ฉ ์ฌ๋ถ ๋ฐ ๋ทฐ์ ์ ์ฉ๋ ๋ค๋ฅธ ์ ์ฝ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ค๋ฅด๋ค. ์๋ฅผ ๋ค์ด ์คํฌ๋กค์ด ํ์ฑํ๋ ๊ฒฝ์ฐ ๋ทฐ์ ๊ณ ์ ์ฝํ ์ธ ํฌ๊ธฐ๊ฐ ์๋ค. ์คํฌ๋กค์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ๋ทฐ์ ๊ณ ์ ์ฝํ ์ธ ํฌ๊ธฐ๋ ์ค๋ฐ๊ฟ์์ด ํ ์คํธ ํฌ๊ธฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ณ์ฐ๋๋ค. ์๋ฅผ ๋ค์ด, ํ ์คํธ์ ๋ฆฌํด์ด ์๋ ๊ฒฝ์ฐ ์ฝํ ์ธ ๋ฅผ ํ ์ค์ ํ ์คํธ๋ก ๋ ์ด์์ํ๋๋ฐ ํ์ํ ๋์ด์ ๋๋น๋ฅผ ๊ณ์ฐํ๋ค. ๋ทฐ์ ๋๋น๋ฅผ ์ง์ ํ๊ธฐ ์ํด ์ ์ฝ ์กฐ๊ฑด์ ์ถ๊ฐํ๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ์ฝํ ์ธ ํฌ๊ธฐ๋ ๋๋น๊ฐ ์ง์ ๋ ํ ์คํธ๋ฅผ ํ์ํ๋ ๋ฐ ํ์ํ ๋์ด๋ฅผ ์ ์ํ๋ค.
์คํ ๋ ์ด์์์ ๊ฐ ์ฐจ์์ ๋ํ ํ ์์ ์ ์ฝ ์กฐ๊ฑด์ ์ฌ์ฉํ์ฌ ๋ทฐ์ ๊ณ ์ ์ฝํ ์ธ ํฌ๊ธฐ๋ฅผ ๋ํ๋ธ๋ค. content hugging์ ๋ทฐ๋ฅผ ์์ชฝ์ผ๋ก ๋น๊ฒจ ์ฝํ ์ธ ์ฃผ๋ณ์ ๊ผญ ๋ง๋๋ก ํ๋ค. content compression์ ์ฝํ ์ธ ๋ฅผ ์๋ฅด์ง ์๋๋ก ๋ทฐ๋ฅผ ๋ฐ๊นฅ์ชฝ์ผ๋ก ๋ฐ์ด๋ธ๋ค.
์ด๋ฌํ ์ ์ฝ์ ๋ชฉ๋ก 3-5์ ํ์๋ ๋ถ๋ฑ์์ ์ฌ์ฉํ์ฌ ์ ์๋๋ค. ์ฌ๊ธฐ์ IntrinsicHeight
๋ฐ IntricsicWidth
์์๋ ๋ทฐ์ ๊ณ ์ ์ฝํ
์ธ ํฌ๊ธฐ์์ ๋์ด ๋ฐ ๋๋น ๊ฐ์ ๋ํ๋ธ๋ค.
// Compression Resistance
View.height >= 0.0 * NotAnAttribute + IntrinsicHeight
View.width >= 0.0 * NotAnAttribute + IntrinsicWidth
// Content Hugging
View.height <= 0.0 * NotAnAttribute + IntrinsicHeight
View.width <= 0.0 * NotAnAttribute + IntrinsicWidth
์ด๋ฌํ ์ ์ฝ์ ๊ฐ๊ฐ ๊ณ ์ ํ ์ฐ์ ์์๋ฅผ ๊ฐ์ง ์ ์๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ทฐ๋ content hugging์ 250 ์ฐ์ ์์๋ฅผ ์ฌ์ฉํ๊ณ compression resistance์ 750 ์ฐ์ ์์๋ฅผ ์ฌ์ฉํ๋ค. ๋ฐ๋ผ ๋ทฐ๋ฅผ ์ถ์ํ๋ ๊ฒ๋ณด๋ค ๋๋ฆฌ๋ ๊ฒ์ด ๋ ์ฝ๋ค. ๋๋ถ๋ถ์ ์ปจํธ๋กค๋ฌ์์ ์ด๊ฒ์ด ๋ฐ๋์งํ ๋์์ด๋ค. ์๋ฅผ ๋ค์ด ๊ธฐ๋ณธ ์ฝํ ์ธ ํฌ๊ธฐ๋ณด๋ค ํฐ ๋ฒํผ์ ์์ ํ๊ฒ ๋๋ฆด ์ ์๋ค. ๊ทธ๋ฌ๋ ์ถ์ํ๋ฉด ๋ด์ฉ์ด ์๋ฆด ์ ์๋ค. Interface Builder๋ ๊ด๊ณ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๋๋๋ก ์ด๋ฌํ ์ฐ์ ์์๋ฅผ ์์ ํ ์ ์๋ค.
๊ฐ๋ฅํ๋ฉด ๋ ์ด์์์์ ๋ทฐ์ ๊ณ ์ ์ฝํ ์ธ ํฌ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค. ๋ทฐ์ ์ฝํ ์ธ ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ๋ ์ด์์์ด ๋์ ์ผ๋ก ์กฐ์ ๋๋ค. ๋ํ ๋ชจํธํ์ง ์๊ณ ์ถฉ๋ํ์ง ์๋ ๋ ์ด์์์ ์์ฑํ๋ ๋ฐ ํ์ํ ์ ์ฝ์ ์๋ฅผ ์ค์ด์ง๋ง ๋ทฐ์ ์ฝํ ์ธ ํฌ์น ๋ฐ ์์ถ ์ ํญ(CHCR) ์ฐ์ ์์๋ฅผ ๊ด๋ฆฌํด์ผํ๋ค. ๋ค์์ ๊ณ ์ ์ฝํ ์ธ ํฌ๊ธฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ช๊ฐ์ง ์ง์นจ์ด๋ค.
- ์ผ๋ จ์ ๋ทฐ๋ฅผ ํ์ฅํ์ฌ ๊ณต๊ฐ์ ์ฑ์ธ ๋ ๋ชจ๋ ๋ทฐ์ content hugging ์ฐ์ ์์๊ฐ ๋์ผํ๋ฉด ๋ ์ด์์์ด ๋ชจํธํ๋ค. ์คํ ๋ ์ด์์์ ์ด๋ค ๋ทฐ๋ฅผ ๋๋ ค์ผํ๋์ง ์์ง ๋ชปํ๋ค.
์ผ๋ฐ์ ์ธ ์๋ ๋ ์ด๋ธ ๋ฐ ํ ์คํธ ํ๋ ์์ด๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ ์ด๋ธ์ด ๊ณ ์ ์ฝํ ์ธ ํฌ๊ธฐ๋ก ์ ์ง๋๋ ๋์ ์ถ๊ฐ ๊ณต๊ฐ์ ์ฑ์ฐ๊ธฐ ์ํด ํ ์คํธ ํ๋๋ฅผ ๋๋ ค์ผํ๋ค. ์ด๋ฅผ ํ์ธํ๋ ค๋ฉด ํ ์คํธ ํ๋์ ๊ฐ๋ก content hugging ์ฐ์ ์์๊ฐ ๋ ์ด๋ธ๋ณด๋ค ๋ฎ์์ง ํ์ธํ๋ค.
์ค์ ๋ก ์ด ์์ ๋ ๋งค์ฐ ์ผ๋ฐ์ ์ด์ด์ Interface Builder๊ฐ ์๋์ผ๋ก ์ด๋ฅผ ์ฒ๋ฆฌํ์ฌ ๋ชจ๋ ๋ ์ด๋ธ์ content hugging ์ฐ์ ์์๋ฅผ 251๋ก ์ค์ ํ๋ค. ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ๋ ์ด์์์ ๋ง๋๋ ๊ฒฝ์ฐ content hugging ์ฐ์ ์์๋ฅผ ์ง์ ์์ ํด์ผ ํ๋ค. - ๋ณด์ด์ง ์๋ ๋ฐฐ๊ฒฝ(์: ๋ฒํผ ๋๋ ๋ ์ด๋ธ)์ด ์๋ ๋ทฐ๊ฐ ์๋ ์ฝํ
์ธ ํฌ๊ธฐ๋ฅผ ๋์ด์ ์ค์๋ก ๋์ด๋ ๊ฒฝ์ฐ ์ด์ํ๊ณ ์๊ธฐ์น ์์ ๋ ์ด์์์ด ์ข
์ข
๋ฐ์ํ๋ค. ํ
์คํธ๊ฐ ์๋ชป๋ ์์น์ ํ์๋๊ธฐ ๋๋ฌธ์ ์ค์ ๋ฌธ์ ๊ฐ ๋ช
ํํ์ง ์์ ์ ์๋ค.
์ํ์ง ์๋ ํ์ฅ์ ๋ฐฉ์งํ๋ ค๋ฉด content hugging ์ฐ์ ์์๋ฅผ ๋์ด๋ฉด ๋๋ค. - ๊ธฐ์ค์ ์ ์ฝ ์กฐ๊ฑด์ ๊ณ ์ ์ฝํ ์ธ ๋์ด์ ์๋ ๋ทฐ์์๋ง ์๋ํ๋ค. ๋ทฐ๊ฐ ์์ง์ผ๋ก ๋์ด๋๊ฑฐ๋ ์์ถ๋๋ฉด ๊ธฐ์ค์ ๊ตฌ์ ์กฐ๊ฑด์ด ๋ ์ด์ ์ ๋๋ก ์ ๋ ฌ๋์ง ์๋๋ค.
- ์ค์์น์ ๊ฐ์ ์ผ๋ถ ๋ทฐ๋ ํญ์ ๊ณ ์ ์ฝํ ์ธ ํฌ๊ธฐ๋ก ํ์๋์ด์ผํ๋ค. ์คํธ๋ ์นญ ๋๋ ์์ถ์ ๋ฐฉ์งํ๊ธฐ ์ํด ํ์์ ๋ฐ๋ผ CHCR ์ฐ์ ์์๋ฅผ ๋์ธ๋ค.
- ๋ทฐ์ ํ์ํ CHCR ์ฐ์ ์์๋ฅผ ์ ๊ณตํ๋ฉด ์๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ทฐ์ ํฌ๊ธฐ๊ฐ ์๋ชป๋ ๊ฒ์ด ์ฐ์ฐํ ์ถฉ๋์ ์ผ์ผํค๋ ๊ฒ๋ณด๋ค ๋ซ๋ค. ๋ทฐ๊ฐ ํญ์ ๊ณ ์ ์ฝํ ์ธ ํฌ๊ธฐ์ฌ์ผํ๋ ๊ฒฝ์ฐ ๋์ ๋งค์ฐ ๋์ ์ฐ์ ์์(999)๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ผ๋ฐ์ ์ผ๋ก ๋ทฐ๊ฐ ๋์ด๋๊ฑฐ๋ ์์ถ๋์ง ์๋๋ก ํ์ง๋ง ์์๋ณด๋ค ํฌ๊ฑฐ๋ ์์ ํ๊ฒฝ์์ ๋ทฐ๊ฐ ํ์๋๋ ๊ฒฝ์ฐ์ ๋๋นํ์ฌ ์ฌ์ ํ ๋น์ ์๋ ฅ ๋ฐธ๋ธ๋ฅผ ์ ๊ณตํ๋ค.
๊ณ ์ ์ฝํ ์ธ ํฌ๊ธฐ ๋ ํผํ ํฌ๊ธฐ
๊ณ ์ ์ฝํ ์ธ ํฌ๊ธฐ๋ ์คํ ๋ ์ด์์์ ๋ํ ์ ๋ ฅ ์ญํ ์ ํ๋ค. ๋ทฐ์ ๊ณ ์ ์ฝํ ์ธ ํฌ๊ธฐ๊ฐ ์๋ ๊ฒฝ์ฐ ์์คํ ์ ํด๋น ํฌ๊ธฐ๋ฅผ ๋ํ๋ด๋ ์ ์ฝ ์กฐ๊ฑด์ ์์ฑํ๊ณ ์ ์ฝ ์กฐ๊ฑด์ ์ฌ์ฉํ์ฌ ๋ ์ด์์์ ๊ณ์ฐํ๋ค.
๋ฐ๋ฉด์ ํผํ ํฌ๊ธฐ๋ ์คํ ๋ ์ด์์ ์์ง์ ์ถ๋ ฅ์ ๋๋ค. ๋ทฐ์ ์ ์ฝ ์กฐ๊ฑด์ ๊ธฐ๋ฐ์ผ๋ก ๋ทฐ์ ๋ํด ๊ณ์ฐ๋ ํฌ๊ธฐ์ด๋ค. ๋ทฐ๊ฐ ์คํ ๋ ์ด์์์ ์ฌ์ฉํ์ฌ ํ์ ๋ทฐ๋ฅผ ๋ ์ด์์ํ๋ ๊ฒฝ์ฐ ์์คํ ์ ํด๋น ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ๋ทฐ์ ๋ง๋ ํฌ๊ธฐ๋ฅผ ๊ณ์ฐํ ์ ์๋ค.
์คํ๋ทฐ๊ฐ ์ข์ ์๋ค. ๋ค๋ฅธ ์ ์ฝ ์กฐ๊ฑด์ ์ ์ธํ๊ณ ์์คํ ์ ์ฝํ ์ธ ๋ฐ ์์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ์คํ ๋ทฐ์ ํฌ๊ธฐ๋ฅผ ๊ณ์ฐํ๋ค. ์ฌ๋ฌ๋ฉด์์ ์คํ ๋ทฐ๋ ๊ณ ์ ํ ์ฝํ ์ธ ํฌ๊ธฐ๊ฐ ์๋ ๊ฒ์ฒ๋ผ ์๋ํ๋ค. ๋จ์ผ ์์ง ๋ฐ ๋จ์ผ ์ํ ์ ์ฝ ์กฐ๊ฑด ๋ง ์ฌ์ฉํ์ฌ ์์น๋ฅผ ์ ์ํ๋ ์ ํจํ ๋ ์ด์์์ ๋ง๋ค ์ ์๋ค. ๊ทธ๋ฌ๋ ํฌ๊ธฐ๋ ์คํ ๋ ์ด์์์ ์ํด ๊ณ์ฐ๋๋ฉฐ ์คํ ๋ ์ด์์์ ๋ํ ์ ๋ ฅ์ด ์๋๋ค. ์คํ๋ทฐ์๋ ๊ณ ์ ์ฝํ ์ธ ํฌ๊ธฐ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์คํ๋ทฐ์ CHCR ์ฐ์ ์์๋ฅผ ์ค์ ํด๋ ํจ๊ณผ๊ฐ ์๋ค.
์คํ๋ทฐ ์ธ๋ถ์ ํญ๋ชฉ์ ๊ธฐ์ค์ผ๋ก ์คํ๋ทฐ์ ํผํ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํด์ผํ๋ ๊ฒฝ์ฐ ํด๋น ๊ด๊ณ๋ฅผ ์บก์ฒํ๊ธฐ ์ํ ๋ช ์์ ์ ์ฝ ์กฐ๊ฑด์ ์์ฑํ๊ฑฐ๋ ์คํ ์ธ๋ถ ํญ๋ชฉ์ ๋ํ ์คํ ์ฝํ ์ธ ์ CHCR ์ฐ์ ์์๋ฅผ ์์ ํ๋ค.
๊ฐ์น ํด์
์คํ ๋ ์ด์์์ ๊ฐ์ ํญ์ ํฌ์ธํธ ๋จ์์ด๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ์ธก์ ์ ์ ํํ ์๋ฏธ๋ ๊ด๋ จ๋ ์์ฑ๊ณผ ๋ทฐ์ ๋ ์ด์์ ๋ฐฉํฅ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์๋ค.
Auto Layout Attributes | Value | Notes |
---|---|---|
Height , Width |
๋ทฐ์ ํฌ๊ธฐ | ์ด๋ฌํ ์์ฑ์ ์์ ๊ฐ์ ํ ๋นํ๊ฑฐ๋ ๋ค๋ฅธ ๋์ด ๋ฐ ๋๋น ์์ฑ๊ณผ ๊ฒฐํฉํ ์ ์๋ค. ์ด ๊ฐ์ ์์์ผ ์ ์๋ค. |
Top , Bottom , Baseline |
ํ๋ฉด ์๋๋ก ์ด๋ํ๋ฉด ๊ฐ์ด ์ฆ๊ฐํ๋ค. | ์ด๋ฌํ ์์ฑ์ Center Y , Top , Bottom ๋ฐ Baseline ์์ฑ๊ณผ๋ง ๊ฒฐํฉ ํ ์ ์๋ค. |
Leading , Trailing |
ํํ(Trailing) ๊ฐ์ฅ์๋ฆฌ๋ก ์ด๋ํ๋ฉด ๊ฐ์ด ์ฆ๊ฐํ๋ค. ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ ๋ ์ด์์ ๋ฐฉํฅ์ ๊ฒฝ์ฐ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ๋ฉด ๊ฐ์ด ์ฆ๊ฐํ๋ค. ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ ๋ ์ด์์ ๋ฐฉํฅ์ ๊ฒฝ์ฐ ์ผ์ชฝ์ผ๋ก ์ด๋ํ๋ฉด ๊ฐ์ด ์ฆ๊ฐํ๋ค. | ์ด๋ฌํ ์์ฑ์ Left , Right ๋ฐ Center X ์์ฑ๊ณผ ๋ง ๊ฒฐํฉ ํ ์ ์๋ค. |
Left , Right |
์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ๋ฉด ๊ฐ์ด ์ฆ๊ฐํ๋ค. | Left ๋ฐ Right ์์ฑ์ ์ฌ์ฉํ์ง ๋ง์์ค. ๋์ Leading ๋ฐ Trailing ์ ์ฌ์ฉํ์ญ์์ค. ์ด๋ ๊ฒํ๋ฉด ๋ ์ด์์์ด ๋ทฐ์ ์ฝ๊ธฐ ๋ฐฉํฅ์ ๋ง๊ฒ ์กฐ์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ฝ๊ธฐ ๋ฐฉํฅ์ ์ฌ์ฉ์๊ฐ ์ค์ ํ ํ์ฌ ์ธ์ด์ ๋ฐ๋ผ ๊ฒฐ์ ๋๋ค. ๊ทธ๋ฌ๋ ํ์ํ ๊ฒฝ์ฐ ์ด๋ฅผ ์ฌ์ ์ ํ ์ ์๋ค. iOS์์ ์ ์ฝ ์กฐ๊ฑด (์ ์ฝ ์กฐ๊ฑด์ ์ํฅ์๋ฐ๋ ๋ชจ๋ ๋ทฐ์ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ณตํต ์กฐ์)์ ๋ณด์ ํ ๋ทฐ์์ semanticContentAttribute ์์ฑ์ ์ค์ ํ์ฌ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ์ผ๋ก ์ ํ ํ ๋ ์ฝํ
์ธ ์ ๋ ์ด์์์ ๋ค์ง์ ์ง ์ฌ๋ถ๋ฅผ ์ง์ ํ๋ค. |
Center X , Center Y |
ํด์์ ๋ฐฉ์ ์์ ๋ค๋ฅธ ์์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค. | Center X ๋ Center X , Leading , Trailing , Right ๋ฐ Left ์์ฑ๊ณผ ๊ฒฐํฉ ๋ ์ ์๋ค. Center Y ๋ Center Y , Top , Bottom ๋ฐ Baseline ์์ฑ๊ณผ ๊ฒฐํฉ ๋ ์ ์๋ค. |
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote