CATiledLayer投影阴影渲染不正确

时间:2011-12-07 22:30:11

标签: iphone uiview core-animation

我有一个将PDF呈现为CATiledLayer的视图。这很有效。

现在我正在尝试向视图添加阴影,所以我按照惯例做了:

    tiledLayer.masksToBounds = NO;
    tiledLayer.shadowOffset = CGSizeMake(5, 5);
    tiledLayer.shadowRadius = 5;
    tiledLayer.shadowOpacity = 0.5;
    tiledLayer.shadowPath = [UIBezierPath bezierPathWithRect:self.bounds].CGPath; 

但我所看到的呈现方式不正确。似乎正在发生的是在绘制瓷砖时为每个瓷砖绘制一个投影。绘制完所有图块后,最终产品看起来正确并且在正确的位置有阴影,但中间渲染会分散注意力。

如何在CATiledLayer中使用投影?

2 个答案:

答案 0 :(得分:1)

您应该将CATiledLayer包装在容器图层中,并将这些阴影属性应用于它。通过self.bounds调用判断,您可能已经将CATiledLayer嵌入到视图的图层中,在这种情况下(除非您需要masksToBounds),您可以直接将阴影属性应用于该图层。

答案 1 :(得分:-1)

为每个瓷砖绘制阴影是完全合理的,这正是您告诉它要做的。我假设你的瓷砖加载在包含它们的某种父视图中(通常是UIScrollView)。您应该在包含视图的设置上设置投影。