问题标签 [catiledlayer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 摆脱 PhotoScroller 中的白色瓷砖边框
Apple 有一个名为 PhotoScroller 的 iOS 示例应用程序,它演示CATiledLayer
和UIScrollViewer
. 示例应用程序在每个图块周围显示白色框,作为说明图块的一种方式(即,当您放大时,图块代表图像的较小部分)。
我怎样才能摆脱这些白线?我已经查看了代码,但无法弄清楚它们来自哪里。(我是 iOS 和 Objective-C 的新手,所以这可能很明显。)
iphone - ZoomingPDFViewer 苹果示例
我正在尝试了解 Apple 的 ZoomingPDFViewer 示例代码。以下是我对它在我脑海中如何运作的理解中的一些问题。我不确定我是否理解正确。他们的代码链接位于:http: //developer.apple.com/library/ios/#samplecode/ZoomingPDFViewer/Introduction/Intro.html
(1) CATiledLayer 用于表示不同缩放级别的PDF。我假设这就是这个类用于查看类参考的内容。除了这个类之外,你还会使用其他东西来实现缩放功能吗?
(2) 在 TiledPDFView 的 initWithFrame 中,他们这样做:tiledLayer.tileSize = CGSizeMake(512.0, 512.0);
tileSize 是构成整个图像的图块吗?如果是这样,为什么这么大的尺寸?
(3) oldPDFView 和 pdfView 是如何工作的?就像在变焦的不同阶段哪个在前面,它们什么时候被换掉。我很难理解逻辑的流程。谢谢。
iphone - 有没有更好的方法在 iphone 中平铺图像
目前,尝试通过 URL 下载图像并以 Apple 商店的 PhotoScroller 应用程序的方式平铺这些图像。最大图像尺寸为 4000 * 4000,为 RGB 格式。我正在使用 256 * 256 的 tilesize 平铺这些图像。平铺图像并将文件写入磁盘需要很长时间。如果可以平铺文件并在 iphone 上加载,则正在寻找更好的方法。总共 4 个 URL 调用,每个 URL 调用获取图像并通过平铺过程并调用 PhotoScroller 应用程序以在 iphone 上启动这些图像。
如果有人遇到过此类问题并对此有所了解,您能否分享一些想法。
iphone - PDF 和缩放 - CATiledLayer
我有一个问题,我不是程序员,但我尝试做一些有趣的应用程序。我尝试创建一个 pdf 查看器,我创建了一个 UIView 类,如下所示:
现在我尝试添加缩放但没有运气,从缩放我创建了一个图层:
编辑:缩放工作,我使用 shouldAutorotateToInterfaceOrientation 是问题(我需要重写一些代码),现在它可以工作但是当我缩放质量恶化时。:(
ios - 渲染非常大的 UIscrollview UIImage + Video
我正在我的应用程序上创建一个特定的功能,但我不知道最好的方法是什么。
我有一个UIScrollview
大屏幕(1024*748)。在这个里面UIScrollView
我插入一个UIView
. 这个视图很大(8000*748),代表一个表格。在这张桌子上,我插入UIImageView
了一些不同的视频。我将此视图呈现给适合滚动视图的用户,然后用户可以通过捏合来缩放并详细查看视频和图像。
我尝试了两种不同的方法:
在第一种方法中,我
UIScrollView
异步加载所有内容,加载后我将其呈现给用户并将缩放级别设置为 0.4。然后我尝试使用
CATiledLayer
与谷歌地图应用程序相同的行为,但在插入视频时遇到了困难。
谁能告诉我最好的方法是什么?
uiview - CATiledLayer 重绘底层子视图
我有两个子类 UIView 作为 UIViewController 视图的子视图。第一个 UIView 将 CATiledLayer 作为图层类。并将其置于背景上。第二个 UIView 首先放在上面。我想用 CATiledLayer 重绘 UIView。我尝试调用 [myView.layer setNeedsDisplay] 但它不起作用。
iphone - 在 CATiledLayer 上添加 UIImage
是否可以在 CATiledLayer 上绘制 UIImage。主要思想是注意视图上的位置。我使用了 Apple Library 中的 PhotoScroller 示例,我正在尝试在 tileRect 顶部添加一个 UIImage。任何帮助将不胜感激。
iphone - 在 UIScrollView 中为 zoomScale 设置动画时不需要的滚动
执行摘要:
有时UIScrollView
会对 的值进行不必要的更改contentOffset
,从而导致应用程序在正在查看的文档中显示错误的位置。不需要的更改与滚动视图的zoomScale
.
详细信息:
我CATiledLayer
在使用UIScrollView
. CATiledLayer
保存一个pdf,当在contentOffset
一定范围内时,当我缩小时,contentOffset
在缩放发生之前改变了(这就是错误)。contentOffset
似乎在 Apple 的代码中有所更改。
为了说明这个问题,我修改了 Apple 的示例应用程序 ZoomingPDFViewer。代码在github上:https ://github.com/DirkMaas/ZoomingPDFViewer-bug
点击将导致zoomScale
更改为 0.5,使用animateWithDuration
,从而缩小。如果UIScrollView
'scontentOffset.y
小于 2700 或大于 5900,则zoomScale
动画效果很好。如果点击发生contentOffset.y
在这两个值之间,contentOffset.y
则将跳转(未动画)到大约 2700,然后zoomScale
会发生动画,但会同时发生滚动,因此当动画完成时,contentOffset.y
就是它所在的位置应该。但跳跃从何而来?
例如,contentOffset.y
点击屏幕时假设是 2000:zoomScale
动画效果很好;contentOffset.y
没有改变。
但是如果在contentOffset.y
点击屏幕时是 4000:contentOffset.y
将在没有动画的情况下跳转到大约 2700,然后缩放和滚动将从该点开始并同时发生。动画完成后,看起来好像我们从 4000 直接放大,所以我们最终在正确的位置,但行为是错误的。
关于 UI 的说明:
- 文本可以以正常方式垂直滚动
- 可以通过正常方式捏合来放大和缩小文本
- 单击一下将导致
zoomScale
设置为 0.5;变化是动画的
我注意到如果zoomScale
大于 0.5,则跳跃不是那么大。另外,如果我使用setZoomScale:animated:
而不是animateWithDuration
,错误就会消失,但我不能使用它,因为我需要链接动画。
这是我所做的总结(github中的代码包括这些更改):
- 从http://developer.apple.com/library/ios/#samplecode/ZoomingPDFViewer/Introduction/Intro.html下载 ZoomingPDFViewer 并在 XCode 中打开
- 更改构建设置 | 架构 | Base SDK 到最新的 iOS (iOS 4.3) 更改了构建设置 | GCC 4.2 - 语言 | 根据 Objective-C++ 编译源代码
- 从项目中删除了 TestPage.pdf
- 将“whoiam 5 24 cropped 3-2.pdf”添加到项目中
- 添加
PDFScrollView *scrollView;
到ZoomingPDFViewerViewController
课堂 - 改为初始化
loadView
而不是ZoomingPDFViewerViewController
scrollView
sv
- 添加到PDFScrollview.m中
viewDidLoad
_handleTapFrom:recognizer
zoomOut
ZoomingPDFViewerViewController
- 注释掉了
scrollViewDidEndZooming:withView:atScale
,scrollViewWillBeginZooming:withView:
因为他们在图像背景中做的事情分散了手头的问题
非常感谢您对我的包容,以及任何和所有的帮助!
iphone - 在 UIScrollView 中缩放和滚动大图像
我已经被困在这很长一段时间了。我查看了许多其他答案以及 Apple 的示例。
我想知道的是如何在 UIScrollView 中加载大图像,并能够对它们进行分页并放大它们,例如 Photos 应用程序。
我正在开发一个需要滚动浏览大图像的应用程序(大,我的意思是大于 1024 x 1024 的图像)。我已经实现了与照片应用程序类似的功能。但是,现在我使用的是大图像,我会收到内存警告和其他东西。我知道为什么我会收到警告,并且我知道我需要Tile the images。
Apple 的示例演示了使用已经存在的小图像进行平铺。我的应用程序将下载多个图像,将它们保存在磁盘上,用户稍后将能够查看它们。因此,我无法使用其他程序剪切图像。
我需要一些可以平铺全尺寸图像的东西。任何帮助将不胜感激。此外,正如我之前提到的,我知道我必须对 Tiling 做一些事情。但是,我对此并不陌生,如果答案包含一些示例代码,我将不胜感激,我可以将其用作起点。
我查看了其他问题,似乎没有一个问题得到我满意的回答,因此,我再次问这个问题。
再次感谢!
iphone - CATiledLayer 如何知道何时提供新图块?
由于各种原因,我正在考虑自己实现 CATiledLayer。我做了一些调查,但我似乎无法弄清楚 CATiledLayer 如何知道要提供哪个图块。例如,当您滚动图层时,永远不会调用 setPosition: 或 setBounds:。看起来后台线程只是在没有任何触发器的情况下突然调用了委托的 drawLayer:inContext:。我发现 CATiledLayer 使用“CAImageProvider”的实例调用 setContent:,并且对 drawLayer:inContext: 的所有调用都来自该类。因此,这可能是确定要绘制什么图块的关键。但我找不到关于该课程的任何文档。
那么......有人知道这是如何工作的,以及我如何能够覆盖它吗?
至于CATiledLayer的缺点:
- 它总是使用屏幕分辨率(或 x2、x4 等);您不能将其设置为源图像的原始分辨率
- 您不能指定除 2 以外的任何其他比例因子
- 您必须指定levelsOfDetail 和levelsOfDetailBias,我根本看不到实现原因。如果您拥有无限可扩展的内容,例如分形,那么这是非常有限的。
- 最重要的是:如果您将其限制为仅在一个方向上缩放(我通过在 setTransform 中将一个方向的比例因子强制为 1 来做到这一点:),它的行为很奇怪