[SwiftUI] stack๊ณผ frame์˜ alignment

๋ฏผ๋‹ˆยท2022๋…„ 10์›” 21์ผ
0

SwiftUI

๋ชฉ๋ก ๋ณด๊ธฐ
1/1

๐Ÿ’ก stack์„ initํ•  ๋•Œ ์“ฐ๋Š” alignment ํŒŒ๋ผ๋ฏธํ„ฐ์™€ frame์˜ alignment ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ผ๊นŒ?



VStack์„ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด๋ณด์ž

struct ContentView: View {
    var body: some View {
        VStack {
            Text("1")
            Text("2")
            Text("3")
        }
        .frame(width: 300, height: 200)
        .background(.orange)
    }
}

1,2,3 Text๋ฅผ ์ถ”๊ฐ€ํ•ด ์ฃผ๊ณ , frame์„ ์ง€์ •ํ•ด ์ค€ ๋’ค, ๋ฐฐ๊ฒฝ์ƒ‰์„ ์˜ค๋ Œ์ง€ ์ƒ‰์œผ๋กœ ์ง€์ •ํ•ด ์ฃผ์—ˆ๋‹ค.


VStack์˜ ์ดˆ๊ธฐํ™”

๐Ÿ“Œ ์ง€์ •๋œ ๊ฐ„๊ฒฉ๊ณผ ์ˆ˜ํ‰ ์ •๋ ฌ๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ ๋‹ค.
๐Ÿ“Œ VStack์˜ alignment ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” HorizontalAlignment๋ฅผ ์ด์šฉํ•˜์—ฌ ์ •๋ ฌํ•œ๋‹ค.
๐Ÿ“Œ alignment์˜ ๋””ํดํŠธ๋Š” center


์ž‰ VStack์ธ๋ฐ horizontal? ๋จผ ์†Œ๋ฆฌ์ง€ ์‹ถ์–ด์„œ ๋‹น์žฅ ๋‹ค ๊ฐˆ๊ฒจ ๋ณธ๋‹ค...


VStack์˜ alignment

var body: some View {
        VStack(alignment: .leading) {
            Text("1")
            Text("2")
            Text("3")
        }
        .frame(width: 300, height: 200)
        .background(.orange)
    }

๋””ํดํŠธ๊ฐ€ center์˜€์œผ๋‹ˆ leading์œผ๋กœ ๋ณ€๊ฒฝํ•ด ์ฃผ์—ˆ์œผ๋‚˜ ๋”ฑํžˆ ๋ณ€ํ™”๊ฐ€ ์—†๋‹ค. ํ˜น์‹œ๋‚˜ ์‹ถ์–ด์„œ ์ฒซ Text๋ฅผ ๋” ๊ธธ๊ฒŒ ์จ๋ณด์•˜์Œ


VStack alignment - center

var body: some View {
        VStack(alignment: .center) {
            Text("12345")
            Text("2")
            Text("3")
        }
        .frame(width: 300, height: 200)
        .background(.orange)
    }


VStack alignment - leading

VStack(alignment: .leading)


VStack alignment - trailing

 VStack(alignment: .trailing)

์•„ ์Šคํƒ์˜ ๋‚ด๋ถ€ ์š”์†Œ๋“ค์˜ ์ˆ˜ํ‰ ์ •๋ ฌ์ด๋ž€ ๊ฒŒ ์š”๊ฑธ ์˜๋ฏธํ•˜๋Š” ๊ฑฐ์˜€๊ตฌ๋งŒ
๊ทธ๋ ‡๋‹ค๋ฉด HStack์˜ alignment๋Š” ๋‚ด๋ถ€ ์š”์†Œ๋“ค์˜ ์ˆ˜์ง ์ •๋ ฌ์„ ๊ฒฐ์ •ํ•˜๊ฒ ๊ตฐ

์‹ค์ œ๋กœ ๊ทธ๋ ‡๊ฒŒ ๋˜์–ด์žˆ๊ธฐ๋‘ ํ•จ



frame์˜ alignment

๐Ÿ“Œ ์ง€์ •๋œ ํฌ๊ธฐ์˜ ๋ณด์ด์ง€ ์•Š์€ frame ๋‚ด์— ๋ณด๊ธฐ๋ฅผ ๋ฐฐ์น˜ํ•จ
๐Ÿ“Œ alignment ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” frame ๋‚ด์—์„œ ์ด ๋ทฐ์˜ ์ •๋ ฌ์„ ์ •์˜
๐Ÿ“Œ alignment์˜ ๋””ํดํŠธ๋Š” center

	ใ„ด alignment๋ฅผ ํƒ€๊ณ  ๋“ค์–ด๊ฐ€๋ฉด ์ด๋ ‡๊ฒŒ ๋งŽ์€ ์นœ๊ตฌ๋“ค์„ ๋ณผ ์ˆ˜ ์žˆ์Œ โ—๏ธ
    
    

frame - center

struct ContentView: View {
    var body: some View {
        VStack(alignment: .center) {
            Text("12345")
            Text("2")
            Text("3")
        }
        .frame(width: 300, height: 200, alignment: .center)
        .background(.orange)
    }
}


frame - leading

frame(width: 300, height: 200, alignment: .leading)


frame - trailing

frame(width: 300, height: 200, alignment: .trailing)


๐Ÿ’ก stack์„ initํ•  ๋•Œ ์“ฐ๋Š” alignment ํŒŒ๋ผ๋ฏธํ„ฐ์™€ frame์˜ alignment ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ผ๊นŒ?

๐Ÿง stack์„ initํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” alignment ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๋‚ด๋ถ€ ์š”์†Œ๋“ค์˜ ์ •๋ ฌ์„ ์˜๋ฏธํ•˜๊ณ , frame์˜ alignment๋Š” ์ง€์ •๋œ ํ”„๋ ˆ์ž„ ๋‚ด์—์„œ์˜ ์Šคํƒ๋ทฐ ์ „์ฒด์˜ ์ •๋ ฌ์„ ์˜๋ฏธํ•จ.



๐Ÿ”—
์• ํ”Œ ๊ณต์‹ ๋ฌธ์„œ

0๊ฐœ์˜ ๋Œ“๊ธ€