UIview阴影与圆角混合使用

,做项目遇到一个问题就是在圆角的按键上加阴影失败了然后就有了这个日志。

CALayer *层=(avatarImageView层);,

(层setMasksToBounds:是的);,

(层setCornerRadius: 9.0);,

,

但是,如给给圆角视图加阴影,传统加阴影的方法是不行的,

传统的方法就是:

avatarImageView.layer。shadowColor=[用户界面颜色blackColor] .CGColor;,

avatarImageView.layer。shadowOffset=CGSizeMake (0,1);,

avatarImageView.layer。shadowOpacity=1;,

,

因为setMasksToBounds表示对框架外的内容进行了裁减,只可显示框架内的内容。由于这种方法加的阴影在框架外,所以被裁减了。

传统方法不行,那我们可以把圆角的avatarImageView放到一个大小与它一样的的UIView中,让这个视图有阴影,那效果看起来就一样了。

CGRect中矩形;,

矩形=CGRectMake(0, 0, 48岁的48);,

avatarImageView=[[UIImageView alloc] initWithFrame:矩形];,

avatarImageView。p_w_picpath=[界面图像p_w_picpathNamed: @“test.png”);,

,,

//在角落,

CALayer *层=(avatarImageView层);,

(层setMasksToBounds:是的);,

(层setCornerRadius: 9.0);,

,,

//添加一个影子阿凡达包装到一个容器,

UIView *影子=[[UIView alloc] initWithFrame:矩形];,

avatarImageView.frame=CGRectMake (0, 0, rect.size。宽度,rect.size.height);,

,,

//设置阴影层和角落,

//


layershadowColorUIColorCGColor

,,,,影子. .,=,(,),

,,,,影子. .,=,;

,,,,影子. .,=,;

,,,,影子又是;=,

,,,,,

,,,,,

layercornerRadius

,,,,btn。=,

,,

//组合视图,

[影子addSubview avatarImageView):;,

,

圆角阴影效果就出来了。


UIview阴影与圆角混合使用