Wri*_*sCS 7 user-interface ipad ios document-preview document-carousel
我知道只有2个源代码示例可以在iPad上完成文档预览界面,就像在Number,Pages等中找到的那样.
还有其他例子吗?infoNgen
这是一个很好的简单例子,然而,代码非常草率,写得非常糟糕,非常无组织.
OmniGroup
是一个很棒的库,但对于简单的项目来说太复杂了.
我能够分解infoNgen的项目,并使用HTML预览创建一个准系统文档查看器,这似乎与更新文档中的信息并保持与预览同步非常有效.现在要解决的问题是,当应用程序退出并重新启动时,文档会保存.+500赏金仍然可用于一个工作示例,但是,除非发布了工作示例,否则我不会打开赏金.
Mos*_*she 13
"包装器视图"是将显示整个预览轮播的主视图控制器.
"carousel"本身就是一个UIScrollView.只需创建滚动视图并将pagingEnabled
属性设置为YES
.通过设置框架将其放置到适当的尺寸,然后将其添加到包装器视图控制器.您还需要contentSize
将轮播视图的属性设置为足够大.通过将文档数量加上另外两个文档的宽度乘以轮播的宽度来计算.如果您希望两侧的文档显示一点,则将文档数乘以滚动视图的宽度减去几个像素.
编辑
实际上,谷歌搜索这个问题有点让我想到了这篇文章,它描述了实现这个的另一种方法.本质上,您将滚动视图包装在自定义UIView子类中,该子类将触摸转发到UIScrollView.这是必要的,因为UIScrollView只能为与其一样宽的页面"分页".使用我的"通过几个像素调整侧视图"方法,您最终得到一个很好的预览,但偏移将导致预览在滚动时跳转.(我在尝试示例代码的同时尝试了我的方法.正如我刚才解释的那样,它不起作用.)在使用自定义包装器之前,我将尝试另外一种方法.(我想知道内容插入是否有效.)
结束编辑
请注意,正如Matthew在评论中正确指出的那样,您实际上只创建了所需的3个视图,如稍后所述.
您提供的文档预览可以是您喜欢的任何对象,如您所述,UIWebView可用于呈现HTML.无论你想用什么来代表你的缩略图,诀窍都是将它们解决.
我假设您有一个对象数组,尽管您可能正在使用Core Data来存储您的信息.要显示文档预览,请将它们添加到滚动视图,但是沿"X"坐标的正确位置.要计算该值,请将当前文档的索引乘以滚动视图的宽度.使用setFrame
文档预览的方法应用此值.您还需要在当前和之后渲染预览,因此您可以获得平滑的动画.
要处理渲染和滚动,您需要将包装器放入UIScrollViewDelegate.每次滚动动画结束时,委托应告诉UIScrollView删除并重新呈现滚动视图.
要处理"轮播效果"(第一个和最后一个文档之间发生的循环),UIScrollViewDelegate应检查contentOffset
属性并确定我们是否在最后一个对象.如果显示最后一个对象,则向右渲染第一个对象,就像其他任何对象一样.如果右侧对象随后滚动到,则使用[scrollView scrollToRect: CGRectMake(0,0,scrollView.rect.size.width,scrollView.rect.sizeheight) animated:NO];
代码无缝跳转到开头.(对第一个预览执行相同操作.渲染左边的第一个和最后一个,必要时以相同的方式处理它).
我希望这个答案有所帮助.我会尽可能发布代码.
祝好运!
编辑2:
现在我考虑一下,整个分页控件可以打包到UIScrollView子类或类别中.我打算尝试这个.
归档时间: |
|
查看次数: |
2587 次 |
最近记录: |