gpt4 book ai didi

ios - iPad 上的 ActionSheet 无法正确显示 SwiftUI

转载 作者:行者123 更新时间:2023-12-04 08:24:43 27 4
gpt4 key购买 nike

我试图让我的用户在 ActionSheet 中选择拍照或从库中选择
它适用于 Iphone 但不适用于 Ipad
在 Ipad 上:ActionSheet 位于屏幕顶部,不可读...
actionSheetIpad
我在 StackOverflow 上读到的关于这个问题的所有问题都是在谈论崩溃(这不是我的情况)或者比 SwiftUI 更老
我的代码:

     struct AjoutView: View {
@State private var image : Image?
@State private var shouldPresentImagePicker = false
@State private var shouldPresentActionScheet = false
@State private var shouldPresentCamera = false

var body: some View {
VStack{
...
}
.sheet(isPresented: $shouldPresentImagePicker, onDismiss: loadImage) {
SUImagePickerView(sourceType: self.shouldPresentCamera ? .camera : .photoLibrary, image: self.$image, isPresented: self.$shouldPresentImagePicker, dispId: disp.id)
}
.actionSheet(isPresented: $shouldPresentActionScheet) { () -> ActionSheet in
ActionSheet(title: Text("Ajouter une photo"), buttons: [ActionSheet.Button.default(Text("Prendre une photo"), action: {
self.shouldPresentImagePicker = true
self.shouldPresentCamera = true
}), ActionSheet.Button.default(Text("Importer depuis mes photos"), action: {
self.shouldPresentImagePicker = true
self.shouldPresentCamera = false
}), ActionSheet.Button.cancel()])

}
}
}
我的代码中缺少什么?

最佳答案

将它附加到您的 View 中的某物上喜欢 Button这使它出现。

struct ASSample: View {
@State var shouldPresentActionScheet1: Bool = false
@State var shouldPresentActionScheet2: Bool = false

var body: some View {
VStack{
Button("show-sheet1", action: {
self.shouldPresentActionScheet1.toggle()
})
.actionSheet(isPresented: $shouldPresentActionScheet1) { () -> ActionSheet in
ActionSheet(title: Text("Ajouter une photo"), buttons: [ActionSheet.Button.default(Text("Prendre une photo"), action: {
//self.shouldPresentImagePicker = true
//self.shouldPresentCamera = true
}), ActionSheet.Button.default(Text("Importer depuis mes photos"), action: {
//self.shouldPresentImagePicker = true
//self.shouldPresentCamera = false
}), ActionSheet.Button.cancel()])

}

Spacer()
Button("show-sheet2", action: {
self.shouldPresentActionScheet2.toggle()
})
.actionSheet(isPresented: $shouldPresentActionScheet2) { () -> ActionSheet in
ActionSheet(title: Text("Ajouter une photo"), buttons: [ActionSheet.Button.default(Text("Prendre une photo"), action: {
//self.shouldPresentImagePicker = true
//self.shouldPresentCamera = true
}), ActionSheet.Button.default(Text("Importer depuis mes photos"), action: {
//self.shouldPresentImagePicker = true
//self.shouldPresentCamera = false
}), ActionSheet.Button.cancel()])

}
}

}

}

struct ASSample_Previews: PreviewProvider {
static var previews: some View {
ASSample()
}
}

关于ios - iPad 上的 ActionSheet 无法正确显示 SwiftUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65324275/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com