У меня есть приложение SwiftUI с кнопкой, которая запускает всплывающее окно с помощью модификатора .sheet(). Однако всплывающее окно кажется слишком большим, и я хотел бы сделать его меньше.
Я попытался обернуть всплывающее представление в VStack и установить определенный размер кадра с помощью модификатора .frame(), но это не изменило размер представления.
Вот пример моего кода:
struct ContentView: View {
@State private var showingSmallView = false
var body: some View {
NavigationView {
VStack {
List {
Text("hi")
Text("hi")
Text("hi")
}
Button(action: { showingSmallView = true }){
Rectangle()
.frame(width: 50, height: 50)
}
}
}
.sheet(isPresented: $showingSmallView){
VStack {
smallView()
}
.frame(width: 200, height: 200)
}
}
}
struct smallView: View {
var body: some View{
Text("hda")
}
}
Буду признателен за любую помощь или предложения о том, как уменьшить всплывающее окно.





Вы можете использовать модификатор .presentationDetents. Вы можете изменить значение на любой размер, который вам нужен. Вы также можете использовать нестандартные значения (например, .medium и .large. См. ниже:
struct ContentView: View {
@State private var showingSmallView = false
var body: some View {
NavigationView {
VStack {
List {
Text("hi")
Text("hi")
Text("hi")
}
Button(action: { showingSmallView = true }){
Rectangle()
.frame(width: 50, height: 50)
}
}
}
.sheet(isPresented: $showingSmallView){
VStack {
smallView()
.presentationDetents([.height(100)]) // here!
}
.frame(width: 200, height: 200)
}
}
}
struct smallView: View {
var body: some View{
Text("hda")
}
}