Ios 从SwiftUI视图获取框架/尺寸

Ios 从SwiftUI视图获取框架/尺寸,ios,swift,swiftui,Ios,Swift,Swiftui,让我们假设,为了呈现特定的信息,我有两种不同类型的自定义SwiftUI视图。举个例子,我的数据是两个字符串,显示它们的选项是 HStack { Text() Spacer() Text() } 或 风格。为了选择最合适的一个,我需要渲染它们并根据结果尺寸进行选择。例如,如果第一种样式中的一个文本视图接近窗口大小的50%,我宁愿使用第二种样式 在用户看不到临时视图的情况下,我将如何进行此操作 我知道GeometryReader,但我不知道如何在屏幕外渲染“候选视图”,确定大小,然后选择实际视图层

让我们假设,为了呈现特定的信息,我有两种不同类型的自定义SwiftUI视图。举个例子,我的数据是两个字符串,显示它们的选项是

HStack { Text() Spacer() Text() }

风格。为了选择最合适的一个,我需要渲染它们并根据结果尺寸进行选择。例如,如果第一种样式中的一个文本视图接近窗口大小的50%,我宁愿使用第二种样式

在用户看不到临时视图的情况下,我将如何进行此操作


我知道
GeometryReader
,但我不知道如何在屏幕外渲染“候选视图”,确定大小,然后选择实际视图层次结构


有什么提示吗?

我不知道如何正确使用SwiftUI。但是,以下是使用
UIKit
Labels
进行文本处理的方法:

let max_width = UIScreen.main.bounds.width/2
if label.intrinsicContentSize.width > max_width{
    //The text would occupy more than 50% of the screen in width
}else{
    //The text won't occupy more than 50% of the screen in width
}
您必须在每个
标签上运行上一个函数,您可以在那里决定


我知道这不是一个完整的答案,因为您使用的是SwiftUI,但是有人可能知道如何在上面应用前面的代码。

哇,为什么要投否决票?如果这对存档来说微不足道,我很乐意接受一个指向我显然忽略的文档的链接。向上投票取消向下投票,但如果UIScreen.main.bounds.width<300{compact layout}
“确定大小,然后做出选择”这将非常困难,不仅在SwiftUI中,而且在UIKit中如何实现这一点?
let max_width = UIScreen.main.bounds.width/2
if label.intrinsicContentSize.width > max_width{
    //The text would occupy more than 50% of the screen in width
}else{
    //The text won't occupy more than 50% of the screen in width
}