最大 CAShapeLayer 大小?

Posted

技术标签:

【中文标题】最大 CAShapeLayer 大小?【英文标题】:Maximum CAShapeLayer size? 【发布时间】:2010-09-01 22:53:32 【问题描述】:

我正在尝试在图像上绘制一个半透明的形状。

我有一个UIView,它的图层内容设置为图像,CAShapeLayer 子图层的路径设置为形状。在父级UIView 中有一些UIViews,它是UIScrollView 的缩放子级。

在 iPhone 上一切正常,但是当我在 iPad 上放大时,UIViews 变大了,CAShapeLayers 消失了。图像显示正常。我猜问题是尺寸问题,所以我将CAShapeLayers 分成两部分,这样就有了左侧和右侧。现在,除非用户放大得非常远,否则它们都会显示出来,例如在超出我的最大缩放范围“松开”时,就在它们反弹回来之前。

进一步拆分我的CAShapeLayers 是可行的,但有点繁琐。所以,我有几个问题:

    CAShapeLayers 是否有最大大小限制?为什么它不适用于图层的图像内容? 为什么CAShapeLayersUIScrollView 内缩放时会重新绘制?整个缩放视图(UIScrollView's 直接子级)不应该在英寸期间光栅化吗?我怎样才能做到这一点?

【问题讨论】:

【参考方案1】:

原来我的电脑(2006 MacBook)上的最大面积是 1024*1024。

iPad 上的全屏形状高度为 1004 像素,最大宽度约为 1044 像素,例如,如果您希望在水平滚动视图中显示较大的形状。

当捏弹跳缩放时,形状的实际高度变大,将最大宽度降低到大约 250 像素。这比我想要的要窄,但可行。

这在物理 iPad 上可能会有所不同,但这些是我的开发盒模拟器中的限制。

【讨论】:

我相信 iPad 设备上的 CAShapeLayer 没有限制,但模拟器中有 1024 x 1024 的限制。我实际上在 iPad 3.2 中使用 2048 x 2048 并且效果很好。我每天只花了 2 个小时试图解决一个我没有遇到的问题,只是因为我还没有在 iPad 设备上检查它。你的笔记为我节省了很多时间。我打算修改脚本以将形状限制为 1024 x 1024。

以上是关于最大 CAShapeLayer 大小?的主要内容,如果未能解决你的问题,请参考以下文章

Git中的最大文件大小和最大存储库大小?

Centos7修改能打开的最大文件大小

linux支持的最大文件大小(能否支持大小4G以上的文件)?[ZSHAO]

BigQuery - 最大数据集大小

转换一个描边的 CAShapeLayer

如何找到最大堆栈大小?