从SwiftUI视图获取框架/尺寸



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

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

VStack {
Text()
Text()
}

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

如果用户没有看到临时视图,我该如何处理?

我知道GeometryReader,但我不知道如何呈现我的";候选视图">在屏幕外,确定大小,然后为我的实际视图层次结构进行选择。

有什么提示吗?

我不知道如何正确使用SwiftUI。但是,以下是一种使用UIKitLabels处理文本的方法:

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
}

您必须在每个Label上运行上一个函数,然后才能做出决定。

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

最新更新