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

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

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

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

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

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

【问题讨论】:

    标签: iphone objective-c uiscrollview ios cashapelayer


    【解决方案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。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-18
    相关资源
    最近更新 更多