第一种:直接使用alpha属性
UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
view1.backgroundColor = [UIColor greenColor];
view1.alpha = 0.5;
[self.view addSubview:view1];
UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 50, 50)];
view2.backgroundColor = [UIColor redColor];
[view1 addSubview:view2];
第二种:使用背景色的alpha值,将父视图view1改为如下,仔细观察它上面的子视图颜色
UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
view1.backgroundColor = [UIColor colorWithRed:0 green:255 blue:0 alpha:0.5];
//view1.alpha = 0.5;
[self.view addSubview:view1];
第一种方法的效果图:
第二种方法的效果图:
仔细观察可以发现,第一种方式设置的透明度会对子视图的透明度产生影响,第二种方式子视图的颜色很纯正,并未对子视图的颜色产生影响。