在Swift中以编程方式将UIImageView替换为PDFView

时间:2018-06-20 22:50:44

标签: ios swift uiimageview pdfview

我的情节提要中有一个UIImageView,带有一个IBOutlet的视图控制器。有没有一种方法可以通过编程方式将其替换为PDFView并在运行时赋予其PDFView约束?我根据显示图像还是pdf来更改视图。

1 个答案:

答案 0 :(得分:0)

只有一个UIView,它已链接到 IBOutlet 到ViewController,并且在情节提要中具有正确的约束,并在运行时添加/删除了适当的子视图(可以是{{1 }}或UIImageView)。

例如,要添加一个 PDFView 作为填充整个UIView的子视图(以下称为PDFView):

containerView

对于UIImageView:

import PDFKit

//...

let pdfView = PDFView()

pdfView.translatesAutoresizingMaskIntoConstraints = false
containerView.addSubview(pdfView)

pdfView.leadingAnchor.constraint(equalTo: containerView.safeAreaLayoutGuide.leadingAnchor).isActive = true
pdfView.trailingAnchor.constraint(equalTo: containerView.safeAreaLayoutGuide.trailingAnchor).isActive = true
pdfView.topAnchor.constraint(equalTo: containerView.safeAreaLayoutGuide.topAnchor).isActive = true
pdfView.bottomAnchor.constraint(equalTo: containerView.safeAreaLayoutGuide.bottomAnchor).isActive = true

//add pdf content 
guard let path = Bundle.main.url(forResource: "example", withExtension: "pdf") else { return }

if let document = PDFDocument(url: path) {
    pdfView.document = document
}

请不要忘记在必要时删除子视图。