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你需要一个列表有什么特别的原因吗?也许它可以被替换?不,我宁愿只做框架修改器。