- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我知道只有两个源代码示例可以在 iPad 上实现文档预览界面,例如在 Number、Pages 等中找到的那些。
还有其他例子吗? infoNgen
是一个很好的简单示例,但是,代码非常草率,而且写得很糟糕,非常杂乱无章。
OmniGroup
是一个很棒的库,但对于简单的项目来说太复杂了。
我能够分解 infoNgen 的项目并制作一个带有 HTML 预览的准系统文档查看器,这似乎可以很好地更新文档中的信息并使其与预览保持同步。现在唯一要解决的问题是在应用程序退出和重新启动时保存文档。 +500 赏金仍然适用于工作示例,但是,除非发布了工作示例,否则我不会开放赏金。
最佳答案
“包装 View ”是将显示整个预览轮播的主视图 Controller 。
“旋转木马”本身就是一个 UIScrollView。只需创建 ScrollView 并将 pagingEnabled
属性设置为 YES
。通过设置框架将其布局为适当的尺寸,然后将其添加到包装器 View Controller 。您还需要将轮播 View 的 contentSize
属性设置得足够大。通过将文档数量加上另外两个文档的宽度乘以旋转木马的宽度来计算。
如果想让两边的文档都显示一点点,那就用文档数乘以 ScrollView 的宽度减去几个像素。
编辑
实际上,通过谷歌搜索这个问题,我找到了 this post它描述了实现它的另一种方法。本质上,您将 ScrollView 包装在自定义 UIView 子类中,该子类将触摸转发到 UIScrollView。这是必要的,因为 UIScrollView 只能为与其一样宽的页面“翻页”。使用我的“将侧 View 调整几个像素”的方法,您最终会得到一个不错的预览,但是偏移量会导致滚动时预览跳转。 (我在将示例代码放在一起时尝试了我的方法。正如我刚才所解释的,它没有用。)在使用自定义包装器之前,我将再尝试一种方法。 (我想知道内容插图是否有效。)
结束编辑
请注意,正如 Matthew 在评论中正确指出的那样,您实际上只创建了所需的 3 个 View ,如后所述。
您的文档预览可以是您喜欢的任何对象,正如您提到的,UIWebView 可用于呈现 HTML。无论您想使用什么来表示缩略图,诀窍在于对它们进行布局。
我假设您有一个对象数组,尽管您可能正在使用 Core Data 来存储您的信息。要显示您的文档预览,请将它们添加到 ScrollView ,但要在“X”坐标上的适当位置。要计算该值,请将当前文档的索引乘以 ScrollView 的宽度。使用文档预览的 setFrame
方法应用此值。您还需要在当前预览之前和之后渲染预览,这样才能获得流畅的动画效果。
要处理渲染和滚动,您需要将包装器变成 UIScrollViewDelegate。委托(delegate)应该告诉 UIScrollView 在每次滚动动画完成时删除并重新呈现 ScrollView 。
要处理“轮播效果”(第一个和最后一个文档之间发生的循环),您的 UIScrollViewDelegate 应该检查 contentOffset
属性并确定我们是否在最后一个对象处。如果显示的是最后一个对象,则将第一个对象渲染到右侧,就像其他任何对象一样。如果随后滚动到正确的对象,则使用 [scrollView scrollToRect: CGRectMake(0,0,scrollView.rect.size.width,scrollView.rect.sizeheight) animated:NO];
代码来无缝跳转到开头。 (对第一个预览执行相同的操作。渲染左侧的第一个和最后一个,必要时以相同的方式处理)。
希望这个回答能有所帮助。我会尽可能发布代码。
祝你好运!
编辑 2:
现在想想,这一整套分页控件完全可以封装成一个UIScrollView的子类或者类。我将尝试着手解决这个问题。
关于ipad - 如何创建类似于 iWorks for iPad 中的 iPad 文档预览界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4550524/
我是一家小型非营利组织的技术总监,我们正在制作一个新网站。我们提出了几个不同主页设计的模型,需要接收董事会成员的意见。是否有在线应用程序/程序/框架可以接收和组织用户评论?我正在寻找允许在查看页面时发
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 4年前关闭。 Improve thi
我阅读了很多关于 java 接口(interface)的文章。我知道你可以实现多态性和其他伟大的东西(函数指针等)。我有理论知识,但有一点点或什至没有。我一直在使用很多已经制作好的界面,比如“Runn
已关闭。此问题旨在寻求有关书籍、工具、软件库等的建议。不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以
我正在尝试在 Windows 7 上编写一个 python 脚本来与我的 Wacom Bamboo Pen 数位板交互。 Wacom 建议使用 WinTab API,它工作正常,但不适用于我的应用程序
我正在研究一种远程访问有关 Linux 服务器统计信息的方法,即 conky会显示。 有没有办法与 conky 交互并获取它显示的统计信息?如果没有,您能否推荐一种获取此类统计数据的好方法? (C/C
将所有这些代码包装在 UI: do { } block 中的原因是什么?我在哪里可以获得关于它的明确说明? UI: do { backgroundButton.setImage(UIImage
我需要将 R 连接到某些 C# 应用程序。我安装了 rscproxy_1.3 和 R_Scilab_DCOM3.0-1B5 添加了对 STATCONNECTORCLNTLib、StatConnecto
我正在尝试遍历接口(interface)片段以通过 id 查找我的特定结构并更改属性。 type A struct { ID ID Steps []Step } type Ste
我有两种不同格式的相同界面,一种是键由低破折号分隔的 JSON 格式,另一种是 javascript camelCase 格式: JSON 格式: interface MyJsonInterface
操作系统:Linux。 我正在尝试寻找可能的方法来为我的嵌入式系统实现 Web 界面。 目前有一个外壳(基于文本)和一小组命令用于查询设备。 我是网络开发新手,我的问题是: 我必须使用什么网络服务器?
我正在尝试运行基于 Mechanical Turk Qualtrics 的调查,并且需要一些似乎可以通过 Mechanical Turk API 使用的功能,例如 custom Qualificati
我见过漂亮的 MetroTwit 界面 http://www.metrotwit.com/ ;我想知道使用了哪些 WPF 组件来尝试重现它。 最佳答案 MetroTwit 设计师在这里:) 所有的控件
我有一个小问题。我需要将 Hadoop Web 界面与我们的 Web 应用程序集成。我只需要一个 Hadoop 接口(interface),我们可以在其中运行一些 hadoop 命令,例如 1
假设我有这个 JavaScript 函数: function updateMainBuff(buff) { // do some stuff } 我的
我试图找出一个窗口是否属于当前的虚拟桌面。 我从 winapi 中找到了 VirtualDesktopManager 类,但即使根据 here 它应该位于“shobjidl.h” header 中,当
关闭。这个问题是opinion-based .它目前不接受答案。 想改进这个问题?更新问题,以便 editing this post 提供事实和引用来回答它. 8年前关闭。 Improve this
我的 Tkinter GUI 界面有问题。文本不会在 shell 中打印,但如果将 Entry 放置在第一个 tk 窗口 get() 中,它就可以工作...帮助我吗? 这是我的代码: import o
我有一个在 MATLAB 中实现的随机微分方程组。只有 4 个变量与 Euler-Maruyama 集成,所以没有什么太花哨的......不过,技术细节对于这个问题并不重要。 您建议我如何构建一个 W
对于我创建的插件,我想添加一个网络界面,您可以从中更改设置并执行一些简单的数据操作。此数据操作应通过 sqlquerys 完成。我正在使用 sqlite 数据库,这就是问题开始的地方: 网站(serv
我是一名优秀的程序员,十分优秀!