在SwiftUI中,允许用户与弹出层后面的视图进行交互

7

苹果最近宣布,通过添加.presentationDetents(detents: Set<PresentationDetent>)修饰符,即可在SwiftUI中实现半页功能。

遗憾的是,这仍然会阻止用户与底层视图进行交互。

有没有办法允许用户与底部视图进行交互?


对于潜在的解决方法也很感兴趣——苹果的系统视图真的很难自定义。同时,也许可以尝试我的库https://github.com/aheze/SplitSheet。 - aheze
UIKt中的自适应控件具有未变暗标识符选项。 - lorem ipsum
1
他们不仅使用暗淡的视图(拦截点击)来覆盖后面的视图,而且完全禁用了后面视图的交互,因此使前景覆盖物变为清晰颜色也无济于事。(看来他们预见到了我们的愿望并加以防止 ;) )。现在只能等待未来版本中公共API的配置,或者使用自定义解决方案。 - Asperi
2个回答

16

使用最新的Xcode 14.3 Beta和iOS 16.4 Beta,您可以通过.sheet使用presentationBackgroundInteraction视图修饰符终于做到这一点:

.presentationDetents([.height(100), .medium, .large])
.presentationBackgroundInteraction(
    .enabled(upThrough: .medium)
)

这将使得在纸张处于高度为.height(100).medium停靠位置时,可以与纸张后面的视图进行交互。

2

这实际上是在与背景交互还是只是没有变暗? - mscrrrr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接