SwiftUI Popover大小未扩展以适应内容

SwiftUI Popover大小未扩展以适应内容,swiftui,ipados,Swiftui,Ipados,这是我的密码 struct ContentView:View{ @状态变量showingPopover=false var body:一些观点{ VStack{ 垫片() 文本(“你好,世界”) 垫片() HStack{ 垫片() 钮扣{ self.showingPopover.toggle() }标签:{ 图像(系统名称:“plus.circle”) } .popover(显示:$showingPopover){ 列表(0..您可以为列表提供一个自定义的框架。此外,如果希望滚动,请不要忘记将列

这是我的密码

struct ContentView:View{
@状态变量showingPopover=false
var body:一些观点{
VStack{
垫片()
文本(“你好,世界”)
垫片()
HStack{
垫片()
钮扣{
self.showingPopover.toggle()
}标签:{
图像(系统名称:“plus.circle”)
}
.popover(显示:$showingPopover){

列表(0..您可以为
列表
提供一个自定义的
框架
。此外,如果希望滚动,请不要忘记将列表嵌入
滚动视图

ScrollView {
    List(0..<100) {
        Text("\($0)")
    }
    .frame(width: 100, height: 250)
}
滚动视图{

列表(0..您可以为
列表
提供一个自定义的
框架
。此外,如果希望滚动,请不要忘记将列表嵌入
滚动视图

ScrollView {
    List(0..<100) {
        Text("\($0)")
    }
    .frame(width: 100, height: 250)
}
滚动视图{

列表(0..您可以使用
滚动视图
ForEach
而不是
列表

struct ContentView: View {
    @State var showingPopover = false

    var body: some View {
        VStack {
            Spacer()
            Text("Hello World")
            Spacer()
            HStack {
                Spacer()
                Button(action: {
                    self.showingPopover.toggle()
                }) {
                    Image(systemName: "plus.circle")
                }
                .padding(30)
            }
        }
        // can be attached to the button as well (as in the question)
        .popover(isPresented: $showingPopover,
                 attachmentAnchor: .point(.bottomTrailing),
                 arrowEdge: .bottom) {
            ScrollView(.vertical, showsIndicators: false) {
                ForEach(0 ..< 100) {
                    Text("\($0)")
                }
            }
        }
    }
}
struct ContentView:View{
@状态变量showingPopover=false
var body:一些观点{
VStack{
垫片()
文本(“你好,世界”)
垫片()
HStack{
垫片()
按钮(操作:{
self.showingPopover.toggle()
}) {
图像(系统名称:“plus.circle”)
}
.填充(30)
}
}
//也可以附加到按钮上(如问题中所示)
.popover(显示:$showingPopover,
附着点:。点(.bottomTrailing),
箭头边:。底部){
滚动视图(.vertical,showsIndicators:false){
ForEach(0..<100){
文本(“\($0)”)
}
}
}
}
}

您可以使用
滚动视图
ForEach
而不是
列表

struct ContentView: View {
    @State var showingPopover = false

    var body: some View {
        VStack {
            Spacer()
            Text("Hello World")
            Spacer()
            HStack {
                Spacer()
                Button(action: {
                    self.showingPopover.toggle()
                }) {
                    Image(systemName: "plus.circle")
                }
                .padding(30)
            }
        }
        // can be attached to the button as well (as in the question)
        .popover(isPresented: $showingPopover,
                 attachmentAnchor: .point(.bottomTrailing),
                 arrowEdge: .bottom) {
            ScrollView(.vertical, showsIndicators: false) {
                ForEach(0 ..< 100) {
                    Text("\($0)")
                }
            }
        }
    }
}
struct ContentView:View{
@状态变量showingPopover=false
var body:一些观点{
VStack{
垫片()
文本(“你好,世界”)
垫片()
HStack{
垫片()
按钮(操作:{
self.showingPopover.toggle()
}) {
图像(系统名称:“plus.circle”)
}
.填充(30)
}
}
//也可以附加到按钮上(如问题中所示)
.popover(显示:$showingPopover,
附着点:。点(.bottomTrailing),
箭头边:。底部){
滚动视图(.vertical,showsIndicators:false){
ForEach(0..<100){
文本(“\($0)”)
}
}
}
}
}

我想我希望它可以扩展,以便在不指定大小的情况下容纳内容。如果您不提供自定义框架,它将默认为最小宽度/高度。就像您可以在代码中看到的那样。我想我希望它可以扩展,以便在不指定大小的情况下容纳内容。如果您不提供自定义框架,它将默认为最小宽度/高度将默认为最小宽度/高度。就像您可以在代码中看到的那样。这确实有效,但不幸的是,我需要保留
List
的功能。@SerenadeX popover中内容的大小默认为最小值。这就是列表的行为。如果您有一个列表,则需要使用.frame修饰符。是否有指定的为什么你需要列表?也许它可以被替换?不,我宁愿只做框架修改器。这确实有效,不幸的是我需要保留
List
的功能。@SerenadeX popover中内容的大小默认为最小值。这就是列表的行为。如果你有一个列表,你需要使用.frame modi你需要一个列表有什么特别的原因吗?也许它可以被替换?不,我宁愿只做框架修改器。