iOS:带有锐边的阴影

时间:2012-05-16 21:02:59

标签: ios core-graphics shadow dropshadow

我试图在我的一个视图中添加一些阴影,我想要实现的是仅在一侧绘制阴影并让它们具有锐边。不,我没有运气就尝试了很多方法(使用视图的CALayer + UIBezierPaths的阴影相关属性)。但是,iOS始终使用如下软边缘渲染阴影:

enter image description here

但我真正想要的是这样的事情(没有圆角和边缘的尖锐边缘除了一个):

enter image description here

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

PS:我忘了提及,我的观点实际上应该是一个自定义的UIButton,所以重写drawRect:这将是一个痛苦

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:2)

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

myView.layer.shadowRadius = 0;