当前位置: 首页 > news >正文

iOS QLPreviewController预览PDF文件等(Swift)

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。

相关文章:

  • 人工智能与机器学习——系统学习规划
  • MMO_随笔
  • 人工智能中的线性代数基础详解
  • 深度学习之目标检测/对象检测
  • Leetcode-1278.Palindrome Partitioning III [C++][Java]
  • Jdk7不同集合的扩容机制
  • 新手村:数据预处理-缺失值补充策略
  • 电商商品系统的演进分析
  • 第36周:文献阅读
  • 计算机四级 - 数据库原理 - 第4章 「关系数据库标准语言SQL」
  • deepseek GRPO算法保姆级讲解(数学原理+源码解析+案例实战)
  • FPGA学习(二)——实现LED流水灯
  • Python游戏开发自学指南:从入门到实践(第四天)
  • Python 基础知识整理笔记
  • Spring 事务失效的 8 种场景!
  • mac intel芯片下载安卓模拟器
  • 怎么解决在Mac上每次打开文件夹都会弹出一个新窗口的问题
  • 设计模式(行为型)-备忘录模式
  • C++初阶——类和对象(三) 构造函数、析构函数
  • 开源新星DeepSearcher:用AI重新定义“搜索”的边界
  • 做网站你给推广/百度店铺注册
  • net和cn哪个做网站好/百度账号安全中心
  • 新手怎么做自己网站广告/关键词有哪些?
  • 山东网站seo公司/网站百度百科
  • 广州十大室内设计公司排名/抖音seo推荐算法
  • 长春网站建设致电吉网传媒优/培训班招生方案有哪些