QLPreviewController是可以显示常见文件的专用控制器。可以显示的文件有:
📄 文档类:
PDF (
.pdf)Microsoft Office 文件:
Word 文档 (
.doc,.docx)Excel 表格 (
.xls,.xlsx)PowerPoint 演示文稿 (
.ppt,.pptx)
iWork 文档:
Pages (
.pages)Numbers (
.numbers)Keynote (
.key)
纯文本文件 (
.txt,.rtf)
🎨 图片与多媒体:
图片格式:
JPEG (
.jpg,.jpeg)PNG (
.png)GIF (
.gif)TIFF (
.tiff)SVG (
.svg)
音频/视频:
MP3 (
.mp3)WAV (
.wav)MP4 (
.mp4,.m4v,.mov)
📦 其他文件类型:
压缩包 (
.zip)电子书 (
.epub)代码文件(部分文本可预览,如
.json,.xml,.html等)
QLPreviewController内部的属性和方法都很简单,自己看一下就行了,我就列个文件预览的示例代码吧。Swift实现:
QLPreviewController有自己的导航栏的,我这里不需要所以通过添加qlPreviewController.view的方式添加视图import UIKit import QuickLook class ViewController: UIViewController, QLPreviewControllerDelegate, QLPreviewControllerDataSource { func numberOfPreviewItems(in controller: QLPreviewController) -> Int { 1 } func previewController(_ controller: QLPreviewController, previewItemAt index: Int) -> any QLPreviewItem { //多换几种文件格式试试 let url = Bundle.main.url(forResource: "嘻嘻嘻", withExtension: "PPTX") return url! as QLPreviewItem } override func viewDidLoad() { super.viewDidLoad() loadPreviewWithQuickLook() } //文件预览 private func loadPreviewWithQuickLook() { let qlPreviewController = QLPreviewController.init() qlPreviewController.modalPresentationStyle = .fullScreen qlPreviewController.delegate = self qlPreviewController.dataSource = self qlPreviewController.currentPreviewItemIndex = 0 self.addChild(qlPreviewController) qlPreviewController.view.frame = .init(x: 0, y: 0, width: self.view.bounds.size.width, height: self.view.bounds.size.height) self.view.addSubview(qlPreviewController.view) } }效果:

但是如果要显示网页或者html文件,这个就不能实现了,得去使用WKWebView。