view添加阴影无效

本文介绍了在iOS开发中为UIImageView添加阴影效果的具体方法。通过创建两层UIView来解决阴影显示问题,内层放置图片,外层负责显示阴影,并保持图片原始尺寸不变。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:需要给cell里的imageview添加阴影

问题:按照标准的代码添加阴影,然并卵:代码如下:

    imageview.layer.shadowColor = [[UIColor blackColor] CGColor];
    imageview.layer.shadowOffset = CGSizeMake(4.0f, 4.0f);
    imageview.layer.shadowRadius = 4.0;
    imageview.layer.shadowOpacity = 0.5;

后谷歌说要加一句:

imageview.layer.masksToBounds = NO;,因为阴影是在imagview的layer外面画的

这样阴影出来了,然而,由于允许子元素超出父元素,所以图片的大小就不一样了

 

因此歪果仁提出了一个办法,创建两层view,内层view是imageview,不允许超出边界,外层view是shadowview,ref:

http://www.innofied.com/implementing-shadow-ios/(这个是为了解决圆角view+阴影的问题)

代码:

//注意这个layer一定添加在imageview被add后面
CALayer *sublayer = [[CALayer layer]initWithLayer:self.imageView.layer]; UIView * shadow = [[UIView alloc] initWithFrame:self.imageView .frame]; shadow.userInteractionEnabled = NO; // Modify this if needed shadow.layer.shadowColor = [[UIColor blackColor] CGColor]; shadow.layer.shadowOffset = CGSizeMake(4.0f, 4.0f); shadow.layer.shadowRadius = 4.0; shadow.layer.masksToBounds = NO; //关键 shadow.clipsToBounds = NO; shadow.layer.shadowOpacity = 0.5; [ self.imageView.superview insertSubview:shadow belowSubview: self.imageView]; [shadow addSubview:self.imageView];

 

转载于:https://www.cnblogs.com/lucky-star-star/p/5850445.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值