J'ai un petit échantillon popover dans lequel un bouton déclenche un popover. Le popover ne contient qu'un peu d'interface utilisateur, deux boutons dans ce cas, mais il prend toujours beaucoup d'espace au lieu de s'enrouler soigneusement autour du contenu comme je suis habitué à UIKit. Comment adapter le popover à la taille du contenu?
Capture d'écran du simulateur iPad et code ci-dessous:
struct ContentView: View {
@State private var showingPopupA = false
var body: some View {
HStack {
Button(action: {
self.showingPopupA.toggle()
}, label: {
Text("Button")
}).popover(isPresented: self.$showingPopupA) {
VStack {
Button(action: {
// Do something
self.showingPopupA = false
}) {
Text("Option A")
}
Button(action: {
// Do something
self.showingPopupA = false
}) {
Text("Option B")
}
}.background(Color.red)
}
}
}
}
Sur macOS, le code ci-dessous ressemblera à ceci:
struct PopoverExample: View {
@State private var showingPopupA:Bool = false
var body: some View {
HStack {
Button(action: {
self.showingPopupA.toggle()
}, label: {
Text("Button")
}).popover(isPresented: self.$showingPopupA) {
VStack {
Button(action: {
// Do something
self.showingPopupA = false
}) {
Text("Option A")
}
Button(action: {
// Do something
self.showingPopupA = false
}) {
Text("Option B")
}
}.background(Color.red)
}
}
.frame( maxWidth: .infinity, maxHeight: .infinity)
}
}
Projet lien
Il semble que cela ait été corrigé dans iOS 13.4/Xcode 11.4 Beta. Le popover se redimensionnera quel que soit son contenu.