最大 CAShapeLayer 大小?
Posted
技术标签:
【中文标题】最大 CAShapeLayer 大小?【英文标题】:Maximum CAShapeLayer size? 【发布时间】:2010-09-01 22:53:32 【问题描述】:我正在尝试在图像上绘制一个半透明的形状。
我有一个UIView
,它的图层内容设置为图像,CAShapeLayer
子图层的路径设置为形状。在父级UIView
中有一些UIViews
,它是UIScrollView
的缩放子级。
在 iPhone 上一切正常,但是当我在 iPad 上放大时,UIViews
变大了,CAShapeLayers
消失了。图像显示正常。我猜问题是尺寸问题,所以我将CAShapeLayers
分成两部分,这样就有了左侧和右侧。现在,除非用户放大得非常远,否则它们都会显示出来,例如在超出我的最大缩放范围“松开”时,就在它们反弹回来之前。
进一步拆分我的CAShapeLayers
是可行的,但有点繁琐。所以,我有几个问题:
CAShapeLayers
是否有最大大小限制?为什么它不适用于图层的图像内容?
为什么CAShapeLayers
在UIScrollView
内缩放时会重新绘制?整个缩放视图(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 大小?的主要内容,如果未能解决你的问题,请参考以下文章