热门标签 | HotTags
当前位置:  开发笔记 > IOS > 正文

是否可以在SwiftUI中使模式成为不可消除的?

如何解决《是否可以在SwiftUI中使模式成为不可消除的?》经验,为你挑选了1个好方法。

我正在创建一个应用程序,其中登录/注册部分位于模式内部,如果用户未登录,则会显示该模式。

问题是,用户可以通过向下滑动模式来消除该模式...

有可能防止这种情况吗?

var body: some View {
    TabView(selection: $selection) {
        App()
    }.sheet(isPresented: self.$showSheet) { // This needs to be non-dismissible
        LoginRegister()
    }
}

第二个例子:

我正在使用一种模式来询问信息。除非通过使用“保存”按钮关闭模态,否则用户不能退出该过程。用户必须在按钮起作用之前输入信息。不幸的是,该模式可以通过向下滑动来消除。

有可能防止这种情况吗?



1> Marc T...:

您可以尝试使用来执行此操作highPriorityGesture。当然,蓝色矩形仅用于演示,但是您必须使用覆盖整个屏幕的视图。

struct ModalViewNoClose : View {
    @Environment(\.presentationMode) var presentationMode

    let gesture = DragGesture()

    var body: some View {

        Rectangle()
            .fill(Color.blue)
            .frame(width: 300, height: 600)
            .highPriorityGesture(gesture)

            .overlay(
                VStack{
                    Button("Close") {
                        self.presentationMode.value.dismiss()
                    }.accentColor(.white)
                    Text("Modal")
                        .highPriorityGesture(gesture)
                    TextField("as", text: .constant("sdf"))
                        .highPriorityGesture(gesture)
                } .highPriorityGesture(gesture)
        )
            .border(Color.green)
    }
}


推荐阅读
author-avatar
手机用户2602932623
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有