CAlayer放一张图片,作为view的阴影

一个imageview需要阴影,但阴影效果比较特殊,所以要用一张黑色图片做阴影,想用一个layer加阴影图片,然后插入imageview里面,可是layer加图片没反应。求思路,谢谢

阅读 14.3k
4 个回答

没看懂你的需求,
就我的理解给点伪代码,

CALayer *layer = [CALayer layer];
layer.contens = [UIImage imageNamed:xxx].CGImage;
layer.shadowPath = [UIBezierPath pathWithCGRect:xxx].CGPath;
layer.shadowColor = ...;
[self.layer addSubLayer:layer];

不要用UIImageView.image 去设置image
而要用这种方式

是不是你的 Layer 比上层的 Layer 小或者一样大,所以边界无法显示。。

可以看下这篇文章:CALayers 教程:初步认识 CALayer 学习一下 CALayer 的基本用法。

如果想用图片做阴影,完全不用写代码,可以放个 UIImage 在下面。。用 autolayout 设置 frame 比 content 大一圈即可。CALayer 同理,但是需要代码实现了。

我的没问题,你是这样写的?

UIImage *image = [UIImage imageNamed:@"background"];
self.view.layer.contents = (id) image.CGImage;

如果你说黑色阴影是一张图片,那么直接用UIImageView直接叠加上去就好。
没有必要用到CALayer。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题