xcode - 单向(仅高度)自定尺寸 UI 组件预览
问题描述
我有一个UITableViewCell
包含一个简单UIStackView
和 2 UILabel
s(所以它来自UIKit
,不是本机 SwiftUI),它应该有一个静态宽度和动态高度。如何在无需查看实际手机尺寸的情况下进行预览?
注 1:.sizeThatFits
将所有的权重放在s 上width
,不会有 multiline label
s
注意 2:.device
显示屏幕主视图的额外无用空格。
注3:.fixed(width:height:)
不是首选,因为它会根据我们的需要有更少的空间或额外的无用空间。
演示
struct UILabelPorted: UIViewRepresentable {
var configuration = { (view: UILabel) in }
func makeUIView(context: UIViewRepresentableContext<Self>) -> UILabel {
let uiView = UIViewType()
uiView.setContentHuggingPriority(.defaultHigh, for: .vertical)
uiView.setContentHuggingPriority(.defaultHigh, for: .horizontal)
return uiView
}
func updateUIView(_ uiView: UILabel, context: UIViewRepresentableContext<Self>) { configuration(uiView) }
}
struct UILabel_Previews: PreviewProvider {
static var previews: some View {
UILabelPorted {
$0.text = "This label should have multiple lines like it is in a UITableView cell."
}
.previewLayout(.sizeThatFits)
}
}
解决方案
目前还不是很清楚问题出在哪里,但你需要类似的东西
ContentView()
.previewLayout(.fixed(width: 414, height: 300))
推荐阅读
- amazon-web-services - 如何检测 S3 中未映射到我们数据库的孤立对象?
- javascript - 我的 React 版本有问题
- python - TypeError: get_bind() 得到了一个意外的关键字参数
- python - Python re.sub 正则表达式替换某些字符
- ruby - 如何从散列数组的散列中查询键值
- ide - 每个项目的 WebStorm 中的实时模板(通过 .idea 文件夹)..?
- python - 为什么 Conv2D 的输入通道限制为 1,3,4,张量维度在 tensorflow 中限制为 4-D?
- r - 对于每个组,第一次出现元素 1 的时间是什么时候?
- reactjs - 在 useFirestoreConnect 挂钩中使用 new Date() 导致连续文档读取的查询
- slack-api - 其他空间的令牌