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