我有一个将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中使用投影?
答案 0 :(得分:1)
您应该将CATiledLayer包装在容器图层中,并将这些阴影属性应用于它。通过self.bounds
调用判断,您可能已经将CATiledLayer嵌入到视图的图层中,在这种情况下(除非您需要masksToBounds
),您可以直接将阴影属性应用于该图层。
答案 1 :(得分:-1)
为每个瓷砖绘制阴影是完全合理的,这正是您告诉它要做的。我假设你的瓷砖加载在包含它们的某种父视图中(通常是UIScrollView)。您应该在包含视图的设置上设置投影。