์๋
ํ์ธ์ ์ด์์
๋๋ค๐ฅธ, ์ด๋ฒ ์๊ฐ์๋ Frame modifier
์ ๋ํด์ ์ข ๋ ์์ธํ๊ฒ ํฌ์คํ
ํด๋ณด๋ ค๊ณ ํด์!
SwiftUI์์ frame ์์ ์(modifier)๋ ๋ทฐ(view)์ ํฌ๊ธฐ์ ์์น๋ฅผ ์ง์ ํ๋๋ฐ ์ฌ์ฉํด์. ๋ทฐ์ ๋๋น, ๋์ด, ์ต๋/์ต์ ํฌ๊ธฐ, ์ ๋ ฌ ๋ฐ ์์น๋ฅผ ์ ์ดํ ์ ์์ด์.
๐ก Modifier: ๊ธฐ์กด ๋ทฐ์ ์์ ์๋ฅผ ์ ์ฉํ์ฌ ์๋ก์ด ๋ทฐ ๋ฐํํด์.
frame์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐ๊ณ ์์ด์.
func frame(
width: CGFloat? = nil,
height: CGFloat? = nil,
alignment: Alignment = .center
) -> some View
width์ height๋ ์ต์ ๋์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์ ํ ๋นํ์ง ์์๋ ๋๋ฉฐ, alignment๋ ์ต์ ๋์ ์๋์ง๋ง ๊ธฐ๋ณธ๊ฐ์ด .center๋ก ์ง์ ๋์ด ์์ด ์ธ์๋ก ์ ๋ฌํ์ง ์์๋ ๊ด์ฐฎ์์.
width
: ๋ทฐ์ ๋๋น๋ฅผ ์ค์ ํฉ๋๋ค. nil
์ ์ฌ์ฉํ๋ฉด ๊ธฐ๋ณธ ํฌ๊ธฐ๋ฅผ ์ ์งํด์.height
: ๋ทฐ์ ๋์ด๋ฅผ ์ค์ ํฉ๋๋ค. nil
์ ์ฌ์ฉํ๋ฉด ๊ธฐ๋ณธ ํฌ๊ธฐ๋ฅผ ์ ์งํด์.alignment
: ๋ทฐ์ ์ ๋ ฌ์ ์ง์ ํด์. Alignment
์ด๊ฑฐํ์ ์ฌ์ฉํ๋ฉฐ, ๋ทฐ๊ฐ ์ฃผ์ด์ง ๊ณต๊ฐ ๋ด์์ ์ด๋ป๊ฒ ์ ๋ ฌ๋์ด์ผ ํ๋์ง๋ฅผ ๊ฒฐ์ ํด์. ๊ธฐ๋ณธ๊ฐ์ .center
์ด๋ฉฐ, ๋ค๋ฅธ ๊ฐ๋ฅํ ๊ฐ์ผ๋ก .leading
, .trailing
, .top
, .bottom
, .topLeading
๋ฑ์ด ์์ด์.๋ทฐ์ ํฌ๊ธฐ๋ฅผ ์ง์ ํ์ง ์์์ด์. ๋ฐ๋ผ์ ์ฝํ ์ธ ์ ํฌ๊ธฐ๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐ๋ฅด๊ธฐ ๋๋ฌธ์ background๋ฅผ ํ๋์์ผ๋ก ์ค์ ํ ๊ฒฝ์ฐ ๋ฑ ์ฝํ ์ธ ์ ํฌ๊ธฐ ๋งํผ ๋ฐฐ๊ฒฝ์์ด ์ค์ ๋๋ ๊ฒ์ ํ์ธํ ์ ์์ด์.
frame ์์ ์๋ฅผ ํตํด ๋๋น์ ๋์ด์ ๊ฐ์ ์ฃผ์์ด์. ๋ฐ๋ผ์ ๋ทฐ์ ํฌ๊ธฐ๊ฐ ๋ณ๊ฒฝ๋ ์๋ก์ด ๋ทฐ๊ฐ ๋ฐํ๋์๊ณ , ํด๋น ๋ทฐ์ ๋ฐฐ๊ฒฝ์์ ์ค์ ํ๊ธฐ ๋๋ฌธ์ ๋ณ๊ฒฝ๋ ๋ทฐ์ ํฌ๊ธฐ๋งํผ ํ๋์์ ๋ฐฐ๊ฒฝ์์ด ์ค์ ๋ ๊ฒ์ ํ์ธํ ์ ์์ด์.
๋ฐฐ๊ฒฝ์์ ํ๋์์ ๋ณ๊ฒฝํ ์ดํ์ ๋ค์ ๋ทฐ์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ์์ด์. ๋๋น์ ๋์ด๋ฅผ 300์ผ๋ก ๋ณ๊ฒฝํ์์ผ๋ฉฐ, ์ด๋ก ์ธํด ๋ ์๋ก์ด ๋ทฐ๊ฐ ๋ฐํ๋์๊ณ , ๊ฑฐ๊ธฐ์ ๋ฐฐ๊ฒฝ์์ ๋นจ๊ฐ์์ผ๋ก ๋ณ๊ฒฝํ๊ธฐ ๋๋ฌธ์ ์์ ๊ฐ์ ๋ชจ์ต์ผ๋ก ๋ฐ์๋์์ด์.
func frame(
minWidth: CGFloat? = nil,
idealWidth: CGFloat? = nil,
maxWidth: CGFloat? = nil,
minHeight: CGFloat? = nil,
idealHeight: CGFloat? = nil,
maxHeight: CGFloat? = nil,
alignment: Alignment = .center
) -> some View
minWidth
: ๋ทฐ์ ์ต์ ๋๋น๋ฅผ ์ง์ ํด์. ๋ทฐ์ ์ต์ ๋๋น๋ณด๋ค ์ฝํ
์ธ ๋๋น๊ฐ ์์ผ๋ฉด ์๋์ผ๋ก minWidth๋ก ์ค์ ๋ผ์. ๋ง์ฝ ์ฝํ
์ธ ์ ๋๋น๊ฐ minWidth๋ณด๋ค ํฌ๋ฉด ์ฝํ
์ธ ์ ๋๋น๊ฐ ๋ทฐ์ ๋๋น๊ฐ ๋ผ์.maxWidth
: ๋ทฐ์ ์ต๋ ๋๋น๋ฅผ ์ง์ ํด์. ์ฝํ
์ธ ๊ฐ ์ต๋ ๋๋น๋ณด๋ค ํฌ๋๋ผ๋ ๋ทฐ์ ํฌ๊ธฐ๋ maxWidth๋ฅผ ์ ์งํด์.minHeight
: ๋ทฐ์ ์ต์ ๋์ด๋ฅผ ์ง์ ํด์. ๋ทฐ์ ์ต์ ๋์ด ๋ณด๋ค ์ฝํ
์ธ ๋์ด๊ฐ ์์ผ๋ฉด ์๋์ผ๋ก minHeight๋ก ์ค์ ๋ผ์. ๋ง์ฝ ์ฝํ
์ธ ์ ๋์ด๊ฐ minHeight๋ณด๋ค ํฌ๋ฉด ์ฝํ
์ธ ์ ๋์ด๊ฐ ๋ทฐ์ ๋์ด๊ฐ ๋ผ์.maxHeight
: ๋ทฐ์ ์ต๋ ๋์ด๋ฅผ ์ง์ ํฉ๋๋ค. ์ฝํ
์ธ ๊ฐ ์ต๋ ๋์ด ๋ณด๋ค ํฌ๋๋ผ๋ ๋ทฐ์ ํฌ๊ธฐ๋ maxHeight๋ฅผ ์ ์งํด์.frame
์์ ์์ alignment
๋งค๊ฐ๋ณ์๋ ๋ทฐ์ ์ ๋ ฌ์ ์ค์ ํ๋ ๋ฐ ์ฌ์ฉ๋ผ์. ์ด ๋งค๊ฐ๋ณ์๋ ๋ทฐ์ ํฌ๊ธฐ๊ฐ ์ค์ ๋๊ณ ๋จ๋ ๊ณต๊ฐ์ด ์์ ๋ ๋ทฐ๋ฅผ ํด๋น ๊ณต๊ฐ ๋ด์์ ์ด๋ป๊ฒ ์ ๋ ฌํ ์ง๋ฅผ ์ง์ ํด์. alignment
์ Alignment
์ด๊ฑฐํ์ ์ฌ์ฉํ๋ฉฐ, ์ฌ๋ฌ ์ ๋ ฌ ์ต์
์ ์ ๊ณตํด์.