我想为 macOS 创建一个带有嵌入式 PDFThumbnailView 的 PDFView。PDFThumbnailView 应垂直,位于 PDFView 的右侧。我希望两个视图都位于一个 NSViewRepresentable 内。但是,我不太熟悉 UIKit 及其约束,我能做的最好的事情就是使 PDFThumbnailView 与 PDFView 重叠。如何使 PDFView 和 PDFThumbnailView 分开,这样它们就不会重叠?这是代码:
struct PDFViewWrapper: NSViewRepresentable {
let pdfView = PDFView()
@Binding var pdfDisplay: Int
func makeNSView(context: Context) -> PDFView {
let fileURL = FileManagerClient.shared.getDocumentsDirectory().appendingPathComponent("example.PDF")
let pdfDocument = PDFDocument(url: fileURL)
///
let thumbnailView = PDFThumbnailView()
thumbnailView.translatesAutoresizingMaskIntoConstraints = false
pdfView.addSubview(thumbnailView)
thumbnailView.pdfView = pdfView
NSLayoutConstraint.activate(
[
thumbnailView.leadingAnchor.constraint(equalTo: pdfView.safeAreaLayoutGuide.leadingAnchor),
thumbnailView.topAnchor.constraint(equalTo: pdfView.safeAreaLayoutGuide.topAnchor),
thumbnailView.bottomAnchor.constraint(equalTo: pdfView.safeAreaLayoutGuide.bottomAnchor),
thumbnailView.widthAnchor.constraint(equalToConstant: 80),
]
)
thumbnailView.thumbnailSize = CGSize(width: 100, height: 100)
thumbnailView.backgroundColor = .placeholderTextColor
///
pdfView.document = pdfDocument
pdfView.autoScales = true
pdfView.displayMode = PDFDisplayMode(rawValue: pdfDisplay) ?? .singlePageContinuous
return pdfView
}
func updateNSView(_ uiView: PDFView, context: Context) {}
}