我的故事板中有一个 UIImageView 和一个 IBOutlet 到我的视图控制器。有没有办法以编程方式将其替换为 PDFView 并在运行时为 PDFView 提供约束?我正在根据我是显示图像还是 pdf 来更改视图。
问问题
534 次
1 回答
0
有一个IBOutletUIView
链接到ViewController,在情节提要中有正确的约束,并在运行时添加/删除适当的子视图(是 a或 a )。UIImageView
PDFView
例如,添加一个PDFView作为填充整个 UIView 的子视图(在此命名containerView
):
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
}
对于 UIImageView :
let imageName = "yourImage.png"
let image = UIImage(named: imageName)
let imageView = UIImageView(image: image!)
imageView.frame = CGRect(x: containerView.frame.origin.x,
y: containerView.frame.origin.y,
width: containerView.frame.size.width,
height: containerView.frame.size.height)
containerView.addSubview(imageView)
必要时不要忘记删除您的子视图。
于 2018-06-21T01:42:39.287 回答