You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI Popover示例运行效果与文档不符问题咨询

SwiftUI Popover 示例效果与实际运行不符问题

我完全复制Apple SwiftUI文档中的Popover示例代码运行后,实际效果和文档预期不一致,想确认是否操作有误、是已知问题还是文档代码缺失。

文档示例代码

struct PopoverExample: View {
    @State private var isShowingPopover = false


    var body: some View {
        Button("Show Popover") {
            self.isShowingPopover = true
        }
        .popover(isPresented: $isShowingPopover) {
            Text("Popover Content")
                .padding()
        }
    }
}

效果对比

  • 文档预期效果:
    文档中Popover预期效果

  • 实际运行效果:
    运行后的Popover效果

原因说明

这是iOS/iPadOS平台差异导致的正常行为,并非操作错误或文档问题:

  • 文档展示的是iPadOS上的Popover样式,表现为带箭头的悬浮弹窗;
  • 你在iPhone模拟器运行时,系统默认将Popover适配为全屏模态弹窗,这是iPhone平台的默认交互逻辑。

解决办法(如需在iPhone实现悬浮Popover)

如果希望在iPhone上也呈现类似iPad的悬浮Popover效果,可在iOS 15及以上版本中添加presentationCompactAdaptation(.popover)修饰符,修改后的代码如下:

struct PopoverExample: View {
    @State private var isShowingPopover = false

    var body: some View {
        Button("Show Popover") {
            isShowingPopover = true
        }
        .popover(isPresented: $isShowingPopover) {
            Text("Popover Content")
                .padding()
        }
        .presentationCompactAdaptation(.popover)
    }
}

内容的提问来源于stack exchange,提问作者dilaradeneri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 08:00:09