UIButton圆角和阴影兼得

2019-08-21  本文已影响0人  xiaowu0125

最近的一项目里使用大量的阴影效果,用的UIButton的时候就出现问题了。

把UIButton的masksToBounds设成yes,此时是圆角,但是阴影会没了;你把它设成no,圆角没了,阴影有了。

解决思路是在按钮与view之间加一层,去实现一个带圆角的阴影,这样最后就可以达到效果,注意一定要先上层再上按钮,这样保证按钮在层之上。

效果如下:

代码如下:

CALayer*layer = [CALayer layer];

layer.frame = CGRectMake(跟button一样的位置并且一样大);

layer.backgroundColor = [UIColor blackColor].CGColor;

layer.shadowOffset = CGSizeMake(10,10);

layer.shadowOpacity = 0.7;

layer.cornerRadius = 10;

//这里self表示当前自定义的view

[self.layer addSublayer:layer];

UIButton*button = [[UIButton alloc]initWithFrame:CGRectMake(某位置某大小)];

[self addSubview:button];

button.layer.masksToBounds=YES;

button.layer.cornerRadius=10;

上一篇下一篇

猜你喜欢

热点阅读