有什么方法可以避免 SwiftUI GeometryReader 阻止嵌套视图在 List 内增长? [英] Any way to avoid SwiftUI GeometryReader preventing nested view to grow inside List?

查看:24
本文介绍了有什么方法可以避免 SwiftUI GeometryReader 阻止嵌套视图在 List 内增长?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

出于某种原因,将 GeometryReader 作为中介,如果它是 List 单元格",则会杀死其嵌套视图的几何图形.

For some reason, putting a GeometryReader as an intermediary, kills geometry of its nested views if it's a List "cell".

示例代码:

struct SampleView: View {
    var multilineText: some View {
        Text(
            """
            Some
            Amazing
            Multiline
            Copy
            """
        )
    }

    var body: some View {
        List(1...5, id: \.self) { _ in
            GeometryReader { _ in
                self.multilineText
            }
        }
    }
}

没有GeometryReader(预期)/实际有GeometryReader:

Without GeometryReader (Expected) / Actual with GeometryReader:

这个例子显然过于简化了,但有正当的理由来测量我正在构建的嵌套视图的几何形状.

This example, obviously, is over-simplified, but there is a legitimate reason to measure geometry for a nested view I'm building.

这是在 Xcode 11 beta 6 上.我应该直接将其报告为错误,还是可以预期且可行的方法?

This is on Xcode 11 beta 6. Should I go straight into reporting this as a bug, or it's something expected and workable around?

推荐答案

为列表添加最小行高.

List(1...5, id: \.self) { _ in
    GeometryReader { _ in
        self.multilineText
    }
}.environment(\.defaultMinListRowHeight, 100)

这篇关于有什么方法可以避免 SwiftUI GeometryReader 阻止嵌套视图在 List 内增长?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆