单向(仅高度)自定尺寸 UI 组件预览
Posted
技术标签:
【中文标题】单向(仅高度)自定尺寸 UI 组件预览【英文标题】:Single directional (Height only) self sizing UI components preview 【发布时间】:2020-06-13 07:04:45 【问题描述】:我有一个 UITableViewCell
包含一个简单的 UIStackView
和 2 个 UILabel
s(所以它来自 UIKit
,而不是原生 SwiftUI)应该具有静态宽度和动态高度.如何在无需查看实际手机尺寸的情况下进行预览?
注意 1:.sizeThatFits
会将所有权重放在width
上,不会有多行label
s
注意 2:.device
正在显示屏幕主视图的额外无用空格。
注意 3:.fixed(width:height:)
不是首选,因为它会根据我们的需要有更少的空间或额外的无用空间。
注4:需要这样的东西:(对于UIStackView
)
演示
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)
【问题讨论】:
【参考方案1】:不是很清楚问题出在哪里,但你需要类似的东西
ContentView()
.previewLayout(.fixed(width: 414, height: 300))
【讨论】:
固定宽度和动态高度的组合。 添加了演示以进行更多说明。以上是关于单向(仅高度)自定尺寸 UI 组件预览的主要内容,如果未能解决你的问题,请参考以下文章