3

我正在尝试为我的一个视图添加一些阴影,而我想要实现的是仅在一侧绘制阴影并让它们具有锐利的边缘。不,我已经尝试了很多方法,但没有任何运气(使用视图的 CALayer + UIBezierPaths 的阴影相关属性)。然而,iOS 总是会像这样渲染一个带有柔和边缘的阴影:

在此处输入图像描述

但我真正想要实现的是这样的(除了一个之外没有圆角和边缘锋利的边缘):

在此处输入图像描述

有什么优雅的方法可以做到这一点,还是我必须使用 CoreGraphics 自己绘制阴影?

PS:我忘了提,我的视图实际上应该是一个自定义的 UIButton,所以覆盖 drawRect: 在这里会很痛苦

4

2 回答 2

4

我经历了一个从视野中去除阴影的面具......所以也许你可以尝试一下。

    CALayer *mask = [[[CALayer alloc] init] autorelease];
    mask.backgroundColor = [UIColor blackColor].CGColor;
    mask.frame = CGRectMake(0.0, 0.0, yellowView.bounds.size.width + shadowWidth, yellowView.bounds.size.height);
    yellowView.layer.mask = mask;
于 2012-05-16T21:12:11.447 回答
2

我认为你想要改变的是 shadowRadius 值 - 将其设置为零,你应该得到你正在寻找的锐利边缘:

myView.layer.shadowRadius = 0;
于 2012-05-16T21:13:36.327 回答