Fra*_*nco 18 swiftui geometryreader ios14
我的应用程序使用 GeometryReader 和一些填充来设置 NavigationView 内的视图框架尺寸。
从 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()
}
}
Run Code Online (Sandbox Code Playgroud)
删除 NavigationView 解决了这个问题,但我需要 NavigationView 中容器视图的当前宽度和高度。
有什么建议吗?
ste*_*hen 11
我认为这可能是一个静态分析问题,.frame(width: p.size.width - padding)可能会导致负值。尝试:
.frame(width: abs(p.size.width - padding))
Run Code Online (Sandbox Code Playgroud)
小智 9
帧参数不能使用负值。如果您对框架使用 .infinity 或负值,请将其更改为 nil:
错误的:
.frame(width: visible ? .infinity : 0,
height: visible ? .infinity : 0,
alignment: .bottomTrailing)
Run Code Online (Sandbox Code Playgroud)
正确的:
.frame(width: visible ? nil : 0,
height: visible ? nil : 0,
alignment: .bottomTrailing)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6988 次 |
| 最近记录: |