我有一个UITableViewCell
,其中包含一个简单的UIStackView
和2个UILabel
s(它是从UIKit
,不是原生SwiftUI),应该具有静态宽度和动态高度。我该如何预览而不需要查看手机的实际尺寸?
注1:.sizeThatFits
将所有权重都放在width
上,并且不会出现多行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))