SwiftUIでビューを作成し、PreviewLayout.sizeThatFits
を使用してXcodeプレビューでレンダリングすると、プレビューはコンテンツに応じてサイズを調整します。 UIViewRepresentable
を使用してUIKItビューをインポートすると、完全なデバイスサイズのフレームが表示されます。
SwiftUIがintrinsicContentSize
のUIView
サブクラスを尊重する方法はありますか?
struct Label: UIViewRepresentable {
func makeUIView(context: UIViewRepresentableContext<Label>) -> UILabel {
return UILabel()
}
func updateUIView(_ uiView: UILabel, context: UIViewRepresentableContext<Label>) {
uiView.text = "Some text"
}
}
#if DEBUG
struct Label_Previews: PreviewProvider {
static var previews: some View {
Group {
Label().previewLayout(.sizeThatFits)
}
}
}
#endif
以下をupdateUIView関数に追加します。
uiView.setContentHuggingPriority(.defaultHigh, for: .vertical)
uiView.setContentHuggingPriority(.defaultHigh, for: .horizontal)