一般情况下我们知道,设置阴影效果只需要三行代码即可:
_userIconButton.layer.shadowColor = [UIColor redColor].CGColor;
_userIconButton.layer.shadowOffset = CGSizeMake(5.0, 5.0);
_userIconButton.layer.shadowOpacity = YES;
但是需要设置layer的setMasksToBounds和clipsToBounds为NO,如果我们要裁剪View的显示效果,那么上面的方法是失效了。
既然shadow效果时UIView上面有的属性,那么我们也就可以直接给显示的是图上面增加一个带阴影效果的UIView
UIView * shadow = [[UIView alloc] initWithFrame: _userIconButton.frame];
_userIconButton.frame = CGRectMake(0,0,_userIconButton.frame.size.width, _userIconButton.frame.size.height);
// setup shadow layer and corner
shadow.layer.shadowColor = [UIColor blackColor].CGColor;
shadow.layer.shadowOffset = CGSizeMake(5, 5);
shadow.layer.shadowOpacity = 1;
/*若设置该部分和_userIconButton的Radius一样大,则阴影效果是沿着控件一圈显示*/
shadow.layer.shadowRadius = 9.0;
shadow.layer.cornerRadius = 9.0;
shadow.clipsToBounds = NO;
// combine the views
[shadow addSubview: _userIconButton];
这样即可显示出阴影效果。
网友评论