让我们假设,为了呈现特定的信息,我有两种不同类型的自定义SwiftUI视图。举个例子,我的数据是两个字符串,显示它们的选项要么在中
HStack { Text() Spacer() Text() }
或
VStack {
Text()
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
}
您必须在每个Label
上运行上一个函数,然后才能做出决定。
我知道这不是一个完整的答案,因为你正在使用SwiftUI,但有些人可能知道如何在上面应用以前的代码。