Lorsque je crée une vue dans SwiftUI et la restitue dans un aperçu Xcode, en utilisant PreviewLayout.sizeThatFits
, l'aperçu ajuste sa taille en fonction de son contenu. Lorsque j'importe une vue UIKIt à l'aide de UIViewRepresentable
, elle apparaît avec un cadre de taille d'appareil complet.
Existe-t-il un moyen de faire respecter SwiftUI les sous-classes intrinsicContentSize
des 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
Ajoutez ce qui suit à votre fonction updateUIView:
uiView.setContentHuggingPriority(.defaultHigh, for: .vertical)
uiView.setContentHuggingPriority(.defaultHigh, for: .horizontal)