降低IOS 7中UIView的不透明度

时间:2014-07-10 07:22:58

标签: ios iphone ios7 uiview

我想创建一个具有透明度的UIView用户界面设计,正如我在第一张图片中提到的那样:

第一张图片:

enter image description here

这是我的代码:

self.view.opaque = NO;
self.activityIndicatorView3.alpha = 0;
[self.view addSubview:self.activityIndicatorView3];
[self.activityIndicatorView3 startAnimating];

self.activityIndicatorView3.alpha = 1.0;
self.view.alpha = 0.15;

使用上面的代码我得到输出如下输出图像:

enter image description here

此处进度条不可见。我不知道,我在代码中做错了什么。请帮我实现这个目标。谢谢!

2 个答案:

答案 0 :(得分:0)

实际上你在View.So中添加了活动指示器,如果你减少视图的alpha值,它也会影响它的子视图。为此你可以使用

self.view.opaque = NO;
self.activityIndicatorView3.alpha = 0;
[self.view addSubview:self.activityIndicatorView3];
[self.activityIndicatorView3 startAnimating];

self.activityIndicatorView3.alpha = 1.0;
self.view.backgroundColor=[[UIColor blackColor] colorWithAlphaComponent:.6]; 

您可以减少视图背景颜色的alpha值。

答案 1 :(得分:0)

设置超级视图的不透明度也会影响其子视图。

最好的方法是为该效果创建一个淡化视图

self.activityIndicatorView3.alpha = 0;
[self.view addSubview:self.activityIndicatorView3];
[self.activityIndicatorView3 startAnimating];

self.activityIndicatorView3.alpha = 1.0;

// Change this self.view.alpha = 0.15; to following code

UIView *fadedView=[[UIView alloc]initWithFrame:self.view.bounds];
    [fadedView setBackgroundColor:[UIColor blackColor]];
    [fadedView setAlpha:0.15];
    [self.view addSubview:fadedView];
    [self.view sendSubviewToBack:fadedView];