前要
之前使用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;
的方法了,這個方法是切掉多餘的部分,如果執行了這個方法,陰影效果就沒有。