首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >表视图的图层似乎正在影响同级图层

表视图的图层似乎正在影响同级图层
EN

Stack Overflow用户
提问于 2012-02-29 15:01:53
回答 1查看 275关注 0票数 1

我有一个有趣的问题,涉及核心动画层层次结构中兄弟层之间的关系。下面是我的层次结构:

代码语言:javascript
运行
复制
Animation layer: <CALayer: 0x7ccf060> <--- custom animation layer

Content view's sublayers: (
    "<CALayer: 0x7e7db10>", <--- map view layer
    "<CALayer: 0x7cbfe10>", <--- table view layer
    "<CALayer: 0x7ccf060>"  <--- custom animation layer
)

因此,我在层树中有几个层,其中一个层是我为动画创建的层(它包含几个子层,其所有内容都是从CGImageRef提供的)。

显然,动画层是表视图层的兄弟层,而不是子层。然而,实际情况是,这个自定义动画层的偏移量与表视图的contentOffset成正比,即我滚动了多少。在我的例子中,动画层实际上是表视图的图像表示。

下面是在我将动画层作为兄弟层插入之前向下滚动的表视图:

紧接着,当我将表视图层呈现为CGImageRef并将其用作常规CALayercontents属性的源内容时:

同样,层内容仅仅是表视图的层的图像表示,所以我根本看不出contentOffset会如何影响另一个层。也许如果我将该层添加为表视图层的子层,也许我可以看到哪里会有问题。但是这个动画层是一个兄弟层,为什么它会影响任何东西呢?

下面是我也记录的动画层的帧:

代码语言:javascript
运行
复制
Animation layer's frame: {{0, 0}, {320, 372}}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-01 06:27:13

我假设scrollview正在做一些花哨的工作,比如分层等等,以优化渲染。这意味着,由于您的动画层的帧是正确的,这实际上是层的渲染错误,这将需要负向偏移到滚动视图偏移来补偿。

渲染时,首先将上下文负数转换为scrollViews偏移CGContextTranslateCTM(ctx,-contentOffset.x,-contentOffset.y);然后使用层渲染器渲染translate :ctx;

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9494862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档