swiftui - iOS 14无效的框架尺寸(负数或非有限数)

标签 swiftui ios14 geometryreader

我的应用程序使用带有某些填充的GeometryReader来在NavigationView中设置View框架尺寸。
从iOS 14开始,我收到以下错误消息:
无效的框架尺寸(负数或非负数)
这是一些示例代码进行测试:

import SwiftUI

struct ContentView: View {

    let padding:CGFloat = 16.0

    var body: some View {
        NavigationView {
            GeometryReader { p in
        Text("Hello, world!")
            .frame(width: p.size.width - padding)
            .padding()
            }
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
删除NavigationView可解决此问题,但我需要NavigationView内的容器View的当前宽度和高度。
有什么建议吗?

最佳答案

我认为这可能是一个静态分析问题,因为.frame(width: p.size.width - padding)可能会导致负值。尝试:

.frame(width: abs(p.size.width - padding))

关于swiftui - iOS 14无效的框架尺寸(负数或非有限数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64051332/

相关文章:

swift - 是否可以编写一个函数来组成任意数量的 SwiftUI `ViewModifier' s?

objective-c - 使用 UIDocumentPickerViewController initForOpeningContentTypes 时无法选择文件

swift - 从 iOS 13 UIDatepicker 到 iOS 14 UIDatepicker 的转换

ios - 使用 GeometryReader 时 SwiftUI 覆盖层的垂直对齐错误

ios - SwiftUI - 过渡动画在 GeoReader 中不起作用?

swift - 如何使用 SwiftUI 将 VStack 在 List 内水平居中?

ios - 不使用 Storyboard创建 iMessage 应用程序

swiftui - Xcode 11——SwiftUI 的暗模式设置

ios - 显示一些 View ,仅适用于 iOS 14、SwiftUI

swift - 仅当有足够空间时才显示 SwiftUI View