iOS - QuickLook - 如何在没有 UIScrollView 的情况下在 QuickLook 中打开对象

2023-12-20

有人可以向我指出一个使用 QuickLook 打开(最好但不一定是 pdf)文件而不使用 UITableView 的资源吗?

我确实有使用 QuickLook 的示例,但它使用了我需要摆脱的列表视图。

http://robsprogramknowledge.blogspot.com/2011/02/quick-look-for-ios_21.html http://robsprogramknowledge.blogspot.com/2011/02/quick-look-for-ios_21.html


我不确定您打算如何设计打开文件的用户界面。我使用了几种不同的方法,所以我会提出一些想法。 UITableView 非常适合处理大量文件。通用滚动视图也可用于大量文件。我对仅生成一两个文件的应用程序使用了警报视图。您还可以使用带有文档图标的视图,例如 iPad Mail 应用程序。要获取文档图标,请使用UIDocumentInteractionController。 WWDC 2010 DocInteraction 示例代码深入介绍了如何使用UIDocumentInteractionController.

至于打开文件,Quick Look 框架使这一切变得简单。一个简单的、独立的解决方案是子类化QLPreviewController。然后,你的子类需要符合QLPreviewControllerDataSource协议和可选的QLPreviewControllerDelegate协议。接下来,向其传递一个指向您的文件的 NSURL 数组。您可以通过初始化程序来完成此操作,例如-initWithFiles:(NSArray *)files或通过设置器。从这里,-previewController:previewItemAtIndex:只需要索引到数组即可获取要显示的适当文件。-numberOfPreviewItemsInPreviewController:只需要返回数组的大小。完成此类后,您可以使用任何您喜欢的 UI 设计来推送此视图或以模态方式呈现它。

希望这比您正在阅读的我的教程更清晰。

EDIT:

我已经在 Github 上发布了一些代码,可能会对您有所帮助。我创建了一个文件预览器类 https://github.com/rob-brown/RBFilePreviewer如上所述。我还发了一个demo app https://github.com/rob-brown/Demos直接使用一个QLPreviewController.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS - QuickLook - 如何在没有 UIScrollView 的情况下在 QuickLook 中打开对象 的相关文章

  • 自定义 UIPopoverController 视图背景和边框颜色

    是否可以更改弹出视图的边框颜色 导航栏样式 颜色和箭头样式 颜色 如果是这样 怎么办 如果有一些示例代码可用 那就太好了 iOS 7以上 可以更改backgroundColor of UIPopoverController这会影响导航背景颜
  • 切换到 Xcode 7 后,应用程序大小从 9 MB 增长到 60 MB,有解决办法吗?

    我一直在回顾 Git 历史来寻找文件大小发生巨大变化的原因 但我能找到的唯一真正原因是从 Xcode 6 切换到 Xcode 7 GM 我发现这些是文件大小贡献最大的 10 个 ipa创建自Archive操作在一个Release构建配置 u
  • 数组索引超出范围的表视图

    我正在使用数组从数据库读取数据 目前数组中有 8 个项目 我正在尝试制作一个有节标题的表格 目前我有 4 个部分 并且我已正确设置并且它有效 它也可以在第一次运行时运行 但是当我尝试向后滚动时 我发现索引超出了范围 我正在使用 myarra
  • 自动布局+基于总行数的动态表高度约束

    首先 这与动态单元格的高度无关 所以不要把它搞混了 我有一个场景 我创建了三张卡 详细信息卡 显示位置的具体详细信息 图表卡 根据选择显示不同的图表 更多详细信息卡 卡显示更多详细信息 以下是上述卡片的屏幕 查看以上屏幕的层次结构 Cont
  • 了解 malloc_history 转储

    如果您曾经问 过如何调试 Objective C 中的释放 分配问题 您将遇到这些可以帮助跟踪问题的环境设置 NSZombieEnabled 释放后保留对象 以便您可以获得指针等 MallocStackLogging 保留对象历史记录以供以
  • 获取UIButton的UITableViewCell?

    我正在尝试使用UIButton 它位于自定义的UITableViewCell类称为GFHomeCell The GFHomeCell has a postID属性 我想在准备继续时发送该属性 我设置了一个在按下按钮时运行的方法 但是 在按下
  • iOS:接收“304 Not Modified”响应时 AVPlayerItem 中的错误

    这是一个非常奇怪的错误 我有一个 tableView 每个单元格都使用AVPlayer从远程服务器流式传输视频 想象一下类似 Vine 的时间线 因此 当我滚动时 重复使用的单元格会使用新视频重新配置播放器 问题是 如果我非常快地来回滚动
  • 核心数据二进制数据允许外部存储崩溃

    我在 iOS 12 0 1 上发生崩溃 日志如下 ImageIO CFDataGetBytes data 0x28539b2f0 size 154262 offset 8 count 8 dst 0x16dbf86f0 External d
  • iOS 上的三字母国家代码

    我知道您可以在 iOS 上获取所有国家 地区的两个字母的国家 地区代码 但是有没有办法获得三个字母的国家代码 So from http en wikipedia org wiki ISO 3166 1 alpha 2 http en wik
  • Xcode 和 Waze 集成

    我正在尝试整合我的app with waze http www waze com 有人知道如何调用位智并发送坐标吗 我没有找到任何 API 或其他相关信息 void navigateToLatitude double latitude lo
  • Quickblox 聊天未进行身份验证

    我在我的应用程序中使用 Quickblox 进行一对一聊天 用户已经登录 但是当我尝试登录聊天时 出现以下错误 2014 03 31 12 42 09 532 MyChat 2175 3803 QBChat didNotAuthentica
  • NSLocale 货币符号,显示金额值之前或之后

    我在用StoreKit在我的应用程序中实现应用程序内购买商店 我有一个自定义设计 这意味着价格的值应该是白色的且较大的 货币符号较小 较暗并与价格值的顶部对齐 我可以使用以下命令毫无问题地获取货币符号NSLocale in SKproduc
  • 快速从 appDelegate 中 popToRootViewController

    我试图从应用程序委托弹出到导航堆栈的根视图控制器 并且在将 obj c 中的内容转换为 swift 时遇到一些问题 obj c 中的工作原理 UINavigationController navigationController UINav
  • 在 Objective C 中断言每个对象创建都成功是必要的吗?

    我最近阅读了Apple的示例代码MVC网络 http developer apple com library ios samplecode MVCNetworking 由 Apple 开发者技术支持大师 Quinn The Eskimo 撰
  • UIView 子类中使用的 CAShapeLayer 不起作用

    我尝试了几个小时 用 CAShapeLayer 在 UIView 周围获得虚线边框 但我没有显示它 ScaleOverlay h import
  • 从现在起测量时间间隔

    任何人都知道或可以提供一些与 timeIntervalSinceNow 方法相关的示例代码 我需要类似的东西 time2 当应用程序进入前台时 time1 当应用程序进入后台时 time3 时间差 这样我就可以使用这个数字 以秒为单位的首选
  • Base64Transcoder.m 重复符号

    我想使用 SKPSMTPMessage 库 唯一的问题是这个库包含文件 Base64Transcoder m 由于我有 Dropbox SDK 该文件会出现重复错误 我该如何解决这个错误 我不能直接删除 Base64Transcoder m
  • 如何使用 UISlider 以及如何将滑块设置为特定值?

    我是第一次使用 UIslider 首先我想知道如果值的范围是 0 到 10 如何获取滑块位置的值 其次 我希望我的滑块设置为 5 个不同的值 如 1 2 3 4 5 slider should not set between the lab
  • 播放声音无延迟 iOS

    我找不到如何以低延迟播放真实声音的方法 我尝试使用 AVFoundation 音频播放器 巨大的延迟大约 500 毫秒 所以我尝试创建系统声音 如果运气不好 延迟大约为 200 毫秒 虽然不多 但对我来说没有用 我最多需要 50 毫秒 确保
  • 如何在 Safari 和 Native App 之间共享上下文?

    我有需要通过 Safari 设置一些上下文 上下文标记 然后从本机 iOS 应用程序读取该上下文 这样做的最佳实践是什么 到目前为止的一些想法 在 HTML 5 数据库中设置上下文 但我不确定这是否有效 因为该数据库可能只能从 Safari

随机推荐

  • Stack Overflow 与支持 JavaScript 的横幅配合使用效果最佳

    我试图模仿该网站的 Javascript 要求横幅 并且如果允许 启用 javascript 则隐藏以下 div 但我在页面加载时看到它的闪现 一瞥 div Craftystuff com works best with JavaScrip
  • 对正则表达式中的反斜杠感到困惑[重复]

    这个问题在这里已经有答案了 我对正则表达式中的反斜杠感到困惑 在正则表达式中 有特殊含义 例如 d表示十进制数字 如果在反斜杠前面添加反斜杠 则这种特殊含义就会丢失 在里面正则表达式指南 https docs python org 3 ho
  • 如何删除回收站中路径过长的文件夹或文件?

    我有一个程序可以删除并复制一些具有长路径的文件夹或文件 当长度 gt MAX PATH 时 在这个程序中我使用前缀 这使我可以删除具有长路径的文件夹或文件 但仅限于简单的功能Delete 我需要删除回收站中的文件 为此我需要使用SHFile
  • 如何在IntelliJ IDEA中选择配置文件?

    当我打开 Spring 配置文件并下拉选择配置文件时 为什么 IntelliJ IDEA 会打开一条消息 如果我选择关闭链接 为什么它不再出现 当您在配置文件弹出窗口中单击 关闭 时 它会更改设置并禁用所有 spring 上下文的面板 因此
  • sympy.plotting.plot 奇怪的 xlabel 位置

    当在 sympy 的绘图语句中将 xlabel 设置为字符串值时 标签将放置在图形的最右侧 如果程序中未设置标签 并且我单击复选标记并在那里设置标签 则它位于 X 轴的中间 这是一个例子 from sympy import sin from
  • 使用 PHP 客户端发布 Google+ 时刻时出现 401 未经授权的访问

    我试图使用 API 在 google 中发布一段时间 创建一个简单的示例 但收到 401 错误 我正在关注 Silvano Luciani 的脚步https plus google com SilvanoLuciani posts 2kMX
  • Angular 双花括号内的函数调用

    这是我在 Kendo UI 中的热图代码 div params compare h percentChange h current unit div Its works perfectly fine what the h current u
  • 通过 AJAX 传递图像[重复]

    这个问题在这里已经有答案了 基本上我想在提交表单时使用ajax传递图像文件并检索图像并通过电子邮件将其作为附件文件发送 这是form
  • 将 org.dom4j.Document 转换为 org.w3c.dom.Document 和 XML 签名时出现问题

    我有一些已经使用的课程DOM4J http dom4j sourceforge net 读取 XML 文件并提供 数据的 getter 方法 现在 我需要添加检查 XML 数字的可能性 签名 使用 org w3c dom 并遵循http j
  • GRPC 服务器响应延迟

    首先 是否有人对 GRPC 客户端 服务器实现与 websocket protobuf 客户端 服务器实现之间的吞吐量 延迟进行了性能比较 或者至少是类似的东西 为了实现这一目标 我正在尝试示例 JAVA helloworld grpc 客
  • Android 上现在已弃用 HttpEntity,有什么替代方案吗?

    随着 Android 5 1 的发布 所有 Apache http 内容似乎都已被弃用 看文档是没有用的 他们都说 This class was deprecated in API level 22 Please use openConne
  • 带有背景图像且无文本的 XHTML 锚链接

    是否有可能有锚链接 里面没有文字 有背景图像和固定尺寸 并且仍然有利于搜索引擎优化 CSS 示例 a display block width 50px height 20px background image url images back
  • HttpClient 无法在 Android 上运行

    我正在制作 Xamarin Forms 应用程序 它应该从 api 获取 JSON 然后允许显示它 到目前为止我的代码 public async void jsonDownload connect await downloadData pu
  • 用 C 语言写入十六进制(字节)

    我必须将十六进制字节写入文件 但遇到问题 例如 如果我有 unsigned char a 0x0 我使用 fwrite 写入文件 FILE fp fopen file txt wb fwrite a sizeof unsigned char
  • 为什么不能像 C 中的指针一样对待数组?

    我在 SO 上经常看到这个问题 也许没有那么多话 但是对于数组与指针的不同之处 人们一次又一次地感到困惑 所以我想我应该花点时间来问答一些关于这个问题的问题 出于本次问答的目的 我们将假设使用 32 位系统 并且已声明以下内容 char p
  • 在 rebase -i 期间重写提交消息时如何使 git show diff ?

    我总是用git commit verbose 是否有一个等效的选项 设置可以让 git 在我重写提交消息时显示差异git rebase interactive 根据您在评论中的回答 执行git diff HEAD 不会帮助你 除非你只想重写
  • C#时区计算问题

    我有一个服务器应用程序正在处理不同时区的贷款 服务器使用 UTC 运行 计划任务将在当地时间 08 00 在服务器上启动一个进程 并选择该时区的贷款进行处理 服务器必须检查每笔贷款 然后为某些贷款设置一个超时 该超时将在特定的当地时间 根据
  • Pug 语法中的三元运算符

    是否可以在 Pug 代码中使用三元运算符 我尝试让它发挥作用 Pug file var disabled true input type checkbox disabled disabled null HTML 结果
  • 如何使用 Python 从 XML 中删除元素

    我被 XML 和 Python 困住了 任务很简单 但我至今无法解决 而且花了那么长时间 我来这里是为了寻求如何用几行代码解决这个问题的建议 感谢您在遍历树时提供的任何帮助 我总是得到太多或太少的元素 元素可以无限制地嵌套 给出的例子只是一
  • iOS - QuickLook - 如何在没有 UIScrollView 的情况下在 QuickLook 中打开对象

    有人可以向我指出一个使用 QuickLook 打开 最好但不一定是 pdf 文件而不使用 UITableView 的资源吗 我确实有使用 QuickLook 的示例 但它使用了我需要摆脱的列表视图 http robsprogramknowl