ios - 如何声明正确的内容以将另一个 swiftui 文件导入到 contentview 文件中?

标签 ios swift xcode swiftui xcode11

我对 swift 有点陌生,对我的要求有点困惑。一些背景:我在网上找到一个人,他为滑动底部 View 栏创建了一个 swiftui 文件,我想将它实现到我的 ContentView swiftui 文件中。在 xcode 中单击“修复”后,我在互联网上四处寻找并尝试着玩弄​​它,但我没有运气。

这是错误的图像,我从 xcode 中单击“修复”提示,以及 BottomSheetView.swift 文件的代码 -> https://imgur.com/a/GqEjMzo

有人可以帮助我解释 swift 到底要求我做什么,并让我知道如何解决这个错误吗?

这是我的代码:

import SwiftUI

struct ContentView: View {
    var body: some View {

        ZStack{
        VStack{
            MapView()
                .edgesIgnoringSafeArea(.all)

            let heightDouble = CGFloat(150.00)

            BottomSheetView(isOpen: .constant(true), maxHeight: heightDouble, content: <#() -> Content#>)


        }
    }
}



struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
}

最佳答案

SwiftUI 中的错误并不总是显示在它们真正所在的位置。您的代码段中的问题在于以下行:

let heightDouble = CGFloat(150.00)

它应该是:包含声明的闭包不能与函数生成器“ViewBuilder”一起使用

试试这个,你会发现问题不在其他 View 中:

    var body: some View {

        ZStack{
            VStack{
                Text("hello") // replaced MapView()
                    .edgesIgnoringSafeArea(.all)
                // you need to delete this row to avoid error
                let heightDouble = CGFloat(150.00)

                Text("world") // replaced BottomSheetView(...)

            }
        }
    }

body 变量中的代码必须返回some View,但在其中定义常量违反了此规则

更新BottomSheetView 中,您有 content,这是另一个 View。我没有看到所有的代码,但我认为它应该是这样的:

struct ContentView: View {

    @State var isOpen = true
    var body: some View {

        ZStack{
        VStack{
            MapView()
                .edgesIgnoringSafeArea(.all)

            BottomSheetView(isOpen: self.$isOpen, maxHeight: CGFLoat(150)) {
                Text("bottom")
            }


        }
    }
}

关于ios - 如何声明正确的内容以将另一个 swiftui 文件导入到 contentview 文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59524556/

相关文章:

types - 在 swift 中检测对象是否恰好是特定类型而不是该类型的子类

ios - 更改应用程序中的 iOS 显示和/或辅助功能设置

ios - 在 Xcode 11.2 中使用 Storyboards 以编程方式设置初始 View Controller

ios - 在自己的应用程序/ View 中接收本地通知(或如何在 SwiftUI 中注册 UNUserNotificationCenterDelegate)

ios - UIButton 子类来设置按钮 Xcode/Swift 的高度

xcode - macOS 上的 Redis Graph 编译

mysql - NSURLSession 密码安全

objective-c - 将父类的实例转换为其子类

c++ - NSString UTF8String 访问错误

ios - NSTimeInterval 到小时和分钟的错误转换