大家都知道幌甘,一旦把控件的masksToBounds屬性設(shè)置為YES,那么控件的多余部分將被裁減箕速。那如果我們需要在控件masksToBounds屬性為YES的基礎(chǔ)上添加陰影該怎么辦呢避归?
我想到的方法是,為該控件添加一層CALayer秃臣。代碼如下
- (void)setMidBaseView:(UIView *)midBaseView{
midBaseView.layer.cornerRadius = 5.0f;
midBaseView.layer.masksToBounds = YES;
CALayer *subLayer = [CALayer layer];
subLayer.frame = midBaseView.frame
subLayer.cornerRadius = 5.0f;
subLayer.backgroundColor = [UIColor clearColor].CGColor;
subLayer.masksToBounds = NO;
//todo 設(shè)置陰影
[self.layer insertSublayer:subLayer below:midBaseView.layer];
_midBaseView = midBaseView;
}
可以看到,我先為midBaseView添加了圓角哪工,因此奥此,midBaseView的maskToBounds屬性已被設(shè)置成了YES,然后我為midBaseView添加了一層subLayer雁比,并為此layer設(shè)置了陰影稚虎,即可達(dá)到我們需要的效果~