【问题标题】:PDF View with horizontal scroll水平滚动的 PDF 视图
【发布时间】:2011-09-29 02:27:03
【问题描述】:

我想获得一些关于如何实现水平滚动的 PDF 视图的提示。

我知道如何使用 UIWebView 实现 PDF 阅读器,但只是垂直滚动。

【问题讨论】:

    标签: objective-c cocoa-touch pdf uiwebview


    【解决方案1】:

    我找到了一个具有此功能的开放项目

    https://github.com/vfr/Reader

    【讨论】:

      【解决方案2】:

      我找到了一个具有此功能的开放项目 =D

      https://github.com/iamruinous/Reader

      【讨论】:

        【解决方案3】:

        我已经做到了。代码对于付费客户是私有的,所以我不能直接分享,但基本思路是这样写:

        • 使用CGPDFPageRefCGPDFDocument*CGContextDrawPDFPage 系列函数呈现PDF 单页的UIView 子类。从layerClass 类方法返回[CATiledLayer class] 并适当地设置图层的levelsOfDetail 和tileSize 属性对这个视图有很大帮助。我的也实现了sizeThatFits 来返回页面大小加上一个小间距,并在 pdf 页面的边缘呈现一个微妙的阴影。

          请记住,UIKit 绘图与 CG 绘图是颠倒的;所以在绘画之前做一个CGContextTranslateCTM(ctx, 0.0, layer.bounds.size.height); CGContextScaleCTM(ctx, 1.0, -1.0);

        • 一个 UIView 子类包含和布局(并被委托)处于分页模式的 UIScrollView(主水平分页器),以及每个页面的单独 UIScrollView,每个都包含上述视图之一(用于放大单个页面。 ) 嵌套滚动视图是 Apple 明确认可的做这类事情的方式。这个视图需要按照你想要的方式布置页面;大概在一个长的水平条中,每个都缩放到合适的大小。

          如果不需要页面缩放,可以跳过嵌套的滚动视图,直接在水平滚动条中布局页面视图。

        TL;DR: 不幸的是,这并不像把它扔进 UIWebView 那样简单;但这是可行的,而且直接的方法确实有效。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多