iOS OC 如何为masksToBounds = YES的Vi

2017-04-21  本文已影响0人  Wougle

大家都知道,一旦把控件的masksToBounds属性设置为YES,那么控件的多余部分将被裁减。那如果我们需要在控件masksToBounds属性为YES的基础上添加阴影该怎么办呢?

我想到的方法是,为该控件添加一层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 设置阴影

[self.layer insertSublayer:subLayer below:midBaseView.layer];

_midBaseView = midBaseView;

}

可以看到,我先为midBaseView添加了圆角,因此,midBaseView的maskToBounds属性已被设置成了YES,然后我为midBaseView添加了一层subLayer,并为此layer设置了阴影,即可达到我们需要的效果~

上一篇下一篇

猜你喜欢

热点阅读