UIView的左右阴影

Zer*_*ter 6 iphone shadow calayer ios

嗨我想在视图中添加一个CALayer Shadow,其中阴影位于视图右侧,最简单的方法是:

someView.layer.shadowColor = [[UIColor blackColor] CGColor];
someView.layer.shadowOffset = CGSizeMake(0.0f,0.0f);
someView.layer.shadowOpacity = 1.0f;
someView.layer.shadowRadius = 10.0f;
someView.layer.shadowPath = [[UIBezierPath bezierPathWithRect:someView.bounds] CGPath];
Run Code Online (Sandbox Code Playgroud)

但是当我增加shadowRadius它看起来不太好时,我会添加一个更大的阴影就像一个阴影.我如何制作一个左右看起来很好的阴影.

pro*_*rmr 30

我认为10是一个相当大的阴影半径,尝试3或4而不透明,我通常使用0.7:

someView.layer.shadowColor = [[UIColor blackColor] CGColor];
someView.layer.shadowOffset = CGSizeMake(0.0f,0.0f);
someView.layer.shadowOpacity = 0.7f;
someView.layer.shadowRadius = 4.0f;
Run Code Online (Sandbox Code Playgroud)

如果只想在左右两侧使用阴影,则在顶部和底部插入矩形,使顶部和底部阴影隐藏在视图后面:

CGRect shadowRect = CGRectInset(someView.bounds, 0, 4);  // inset top/bottom
someView.layer.shadowPath = [[UIBezierPath bezierPathWithRect:shadowRect] CGPath];
Run Code Online (Sandbox Code Playgroud)

我不确定这是不是你想要的.


Fan*_*ing 7

swift 3.0版本

imageView.layer.shadowOpacity = 0.8
imageView.layer.shadowOffset = CGSize(width: 0, height: 3)
imageView.layer.shadowRadius = 4.0

let shadowRect: CGRect = imageView.bounds.insetBy(dx: 0, dy: 4)
imageView.layer.shadowPath = UIBezierPath(rect: shadowRect).cgPath
Run Code Online (Sandbox Code Playgroud)