bottom card view, botton sheet ๋ฑ ์ฉ์ด๊ฐ ๋ง์๋ฐ modifier์ ์ด๋ฆ์ sheet์ ๋๋ค
@State private var isShowingSheet: Bool = false
ํ๋ฉด์ sheet์ผ๋ก ๋์ธ view๋ฅผ ๋ณด์ฌ์ค์ง ์ฌ๋ถ๋ฅผ ์ํด State๋ฅผ ํ๋ ์ ์ธํด ์ค๋๋ค.
false์ด๋ฉด ํ๋ฉด์ ๋ณด์ด์ง ์๊ฒ ๋๊ณ , true์ด๋ฉด ํ๋จ์ sheet ํํ๋ก view๊ฐ ๋ณด์ด๊ฒ ๋ฉ๋๋ค.
Button {
isShowingSheet.toggle()
print(isShowingSheet)
} label: {
Text("๋ฐํ
์ํธ ๋์ฐ๊ธฐ")
}
isShowingSheet ๊ฐ์ ๋ฐ๊พธ๊ธฐ ์ํ Button์ ํ๋ ๋ง๋ญ๋๋ค. ๋ฒํผ์ ๋๋ฅด๋ฉด isShowingSheet ์ ํ ๊ธํด ์ค๋๋ค.
.sheet(isPresented: $isShowingSheet, content: {
HStack {
Text("๋ฐํ
์ํธ ์
๋๋ค. ")
}
})
- contetn ๋ด๋ถ์ View๋ฅผ ๋ฐฐ์น
- isPresented ํ๋ผ๋ฏธํฐ๋ ๋ฐ์ธ๋ฉ ๋์ด ์๋๋ฐ ๊ทธ ๋ป์ ์ด ๊ฐ์ sheet์์ ๋ฐ๊ฟ ์ ์๋ค๋ ๊ฒ
Button {
isShowingSheet.toggle()
print(isShowingSheet)
} label: {
Text("๋ฐํ
์ํธ ๋์ฐ๊ธฐ")
}
.sheet(isPresented: $isShowingSheet, content: {
HStack {
Text("๋ฐํ
์ํธ ์
๋๋ค. ")
}
.onDisappear(perform: {
print(isShowingSheet)
})
})
- ๋ฒํผ์ด ๋๋ฆด ๋ ํธ๋ฆฌ๊ฑฐ ์ญํ์ ํ๋ isShowingSheet์ ๊ฐ์ ์ฐ์ด๋ณด๋ฉด true
- sheet์์ ๋์์ฃผ๋ view๊ฐ disappear ๋ ๋ isShowingSheet์ ์ฐ์ผ๋ฉด false ๊ฐ๋๋ ๊ฒ์ ํ์ธํ ์ ์์.
- ์ฆ ํ๋ฉด์ sheet๊ฐ ๋ํ๋๋ฉด true๋ก ํ๋ฉด์์ ์ฌ๋ผ์ง๋ฉด false๋ก ๋ณ๊ฒฝ๋๋ ๊ฒ์ ํ์ธํ ์ ์์
- ๋ฒํผ ํด๋ฆญ์ isShowingSheet.toggle() ๊ณผ isShowingSheet = true๊ฐ ๋์ผํ ์ญํ์ ํ๋ค๊ณ ๋ณผ ์ ์์
.sheet(isPresented: $isShowingSheet) {
HStack {
Text("๋ฐํ
์ํธ ์
๋๋ค. ")
}
.presentationDragIndicator(.visible)
}
- content๋ก ์ ๋ฌํ๋ view์ presentationDragIndicator(.visible) modifier๋ฅผ ์ถ๊ฐํ๋ฉด sheet ์๋จ์ ํธ๋ค๋ฌ๊ฐ ์๊ธฐ๋ ๊ฒ์ ํ์ธํ ์ ์์
.sheet(isPresented: $isShowingSheet) {
HStack {
Text("๋ฐํ
์ํธ ์
๋๋ค. ")
}
.presentationDetents([.height(40), .large])
}
- presentationDetents๋ฅผ ์ง์ ํ๋ฉด sheet์ ๋์ด๋ฅผ ์ง์ ํ ์ ์์
- large == 100, medium == 50 ์ผ๋ก ์ง์ ๋๋ฉฐ .height๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์ ์ง์ ๋์ด๋ก ์ค์ ํ ์ ์์
- ์ค์์ดํ ์ ์ค์ฒ๋ฅผ ์ฌ์ฉํด์ ์ง์ ํ detent ๊ฐ์ผ๋ก sheet์ ๋์ด๋ฅผ ๋ณ๊ฒฝํ ์ ์์
- ์๋จ ์์ ์์๋ large์ผ๋ ์ด์ง ์๋๋ก ์ค์์ดํ ํ๋ฉด ๋์ด 40์ผ๋ก ์ฌ๊ธฐ์ ๋ ์๋๋ก ์ค์์ดํ ํ๋ฉด sheet์ด ์์ ํ ํ๋ฉด์์ ์ฌ๋ผ์ง
'iOS ๐ > SwiftUI' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SwiftUI] Custom Font ์ง์ ํ๊ธฐ (with Figma) (2) | 2023.09.18 |
---|---|
[SwiftUI] Link Text ๋ง๋ค๊ธฐ (๋ชจ๋ ๊ฑธ ์ค๋นํด ๋จ๋ค ๊ฐ์ ธ๋ค ์จ๋ผ!) (0) | 2023.08.27 |
[SwiftUI] SwiftUI์์ AVKit ์ฌ์ฉํ๊ธฐ (0) | 2023.08.20 |
[SwiftUI] Preview์์ ๋ฒ ์ ค ์ญ์ ํ๊ณ View ํฌ๊ธฐ์ ๋ง์ถ๊ธฐ (0) | 2023.08.14 |
[SwiftUI] ์ ๊ฒฝ์ ๊ทธ๋ผ๋์ธํธ๋ก ์ค์ ํ๊ธฐ (0) | 2023.08.13 |