【问题标题】:CALayer drops shadow to each sublayer, how to remove?CALayer 给每个子层投下阴影,如何去除?
【发布时间】:2011-08-05 10:22:20
【问题描述】:

我有一个 UIView 容器,其中包含一个表格视图,其单元格包含图像和按钮。

我想为最外面的容器添加一个阴影,但是当我这样做时,我发现阴影也添加到了所有图像和按钮中。我怎样才能只给图层本身添加阴影而不给它的子图层?

代码:

listContainer.layer.shadowColor = [UIColor blackColor].CGColor;
listContainer.layer.shadowOffset = CGSizeMake(3, 0);
listContainer.layer.shadowOpacity = .8;
listContainer.layer.borderColor = [UIColor blackColor].CGColor;

谢谢!

【问题讨论】:

  • 你能在这些行的上方和下方粘贴代码吗?

标签: iphone ios cocoa-touch ipad core-animation


【解决方案1】:

您是否尝试过图层的 shadowPath 属性?

listContainer.layer.shadowPath = [UIBezierPath bezierPathWithRect:listContainer.bounds.CGPath];

【讨论】:

  • 完美地解决了我的问题,比我考虑为阴影创建图层的替代方案要好得多。也在 OS X 上工作过。
【解决方案2】:

我曾经遇到过这个问题,问题是图层背景颜色是透明的。

因此,如果您有一个 UIView 或 CALayer,并且您尝试在其上设置阴影,请确保有背景颜色以防止阴影被应用到子图层。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-19
    • 2012-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-15
    • 1970-01-01
    相关资源
    最近更新 更多