我试图在我的一个视图中添加一些阴影,我想要实现的是仅在一侧绘制阴影并让它们具有锐边。不,我没有运气就尝试了很多方法(使用视图的CALayer + UIBezierPaths的阴影相关属性)。但是,iOS始终使用如下软边缘渲染阴影:
但我真正想要的是这样的事情(没有圆角和边缘的尖锐边缘除了一个):
有没有优雅的方法可以做到这一点,还是我必须自己使用CoreGraphics绘制阴影?
PS:我忘了提及,我的观点实际上应该是一个自定义的UIButton,所以重写drawRect:这将是一个痛苦答案 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;