给UIView添加阴影,却在子view中生效了

前要

之前使用UItableViewcell中添加的UiView的设置阴影,但是阴影却在子View的控件上生效了,一直没有找到什么原因,之前也是用的是同样的方法

contentView_bg.layer.shadowOffset = CGSizeMake(0, 0);//shadowOffset阴影偏移,x向右偏移,y向下偏移
contentView_bg.layer.shadowColor = [LYTool colorWithHexString:@"#DBDBDB"].CGColor;
contentView_bg.layer.shadowOpacity = 1;//阴影透明度,默认0
contentView_bg.layer.shadowRadius = 4;

一个最基本的设置阴影的方法普通的不能再普通了,但是就是显示不出来。

结果以及原因分析

一切的原因仅仅是contentView_bg.backgroundColor = [UIColor whiteColor];这句话的原因,只是没有设置背景的颜色,但是也不能设置背景的颜色是透明的也不行。也就是说 不能contentView_bg.backgroundColor = [UIColor clearColor];这样的话阴影也是显示不出来的,UIView没有设置背景颜色话,就是默认的透明的,所以阴影就是一直显示不出来的原因找到了,但是为什么会传递了子的UIView的控件这个很费劲。以后知道原因再来回复这个问题。实现正确的方法就是

//背景框
        UIView *contentView_bg = [[UIView alloc] initWithFrame:CGRectMake(KPT_SCAlE(14), 2, SCREEN_WIDTH- KPT_SCAlE(28), KPT_SCAlE(245))];
        contentView_bg.layer.shadowOffset = CGSizeMake(0, 0);//shadowOffset阴影偏移,x向右偏移,y向下偏移
        contentView_bg.layer.shadowColor = [LYTool colorWithHexString:@"#DBDBDB"].CGColor;
        contentView_bg.layer.shadowOpacity = 1;//阴影透明度,默认0
        contentView_bg.layer.shadowRadius = 4;
        [self.contentView addSubview:contentView_bg];
        contentView_bg.layer.cornerRadius = KPT_SCAlE(10);
//        contentView_bg.clipsToBounds = YES;
        _contentView_bg = contentView_bg;
        contentView_bg.backgroundColor = [UIColor clearColor];

还有就是小窍门,设置又有圆角又有阴影的话就不要执行contentView_bg.clipsToBounds = YES;的方法了,这个方法是切掉多余的部分,如果执行了这个方法,阴影效果就没有。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章