web-dev-qa-db-ja.com

プレビューでSwiftUI UIViewRepresentableに組み込みコンテンツサイズを尊重させるにはどうすればよいですか?

SwiftUIでビューを作成し、PreviewLayout.sizeThatFitsを使用してXcodeプレビューでレンダリングすると、プレビューはコンテンツに応じてサイズを調整します。 UIViewRepresentableを使用してUIKItビューをインポートすると、完全なデバイスサイズのフレームが表示されます。

SwiftUIがintrinsicContentSizeUIViewサブクラスを尊重する方法はありますか?

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
11
knellr

以下をupdateUIView関数に追加します。

uiView.setContentHuggingPriority(.defaultHigh, for: .vertical)
uiView.setContentHuggingPriority(.defaultHigh, for: .horizontal)
9
dwitt