2016-11-24 63 views
1

我有一个视图控制器,它由一个容器视图组成,该容器视图在图像视图上是屏幕大小的一半,最初是隐藏的。该容器嵌入了tableView。我有一个按钮,点击后会显示容器视图,在第二次点击时它会隐藏。如何模糊屏幕一半的容器背景

我的问题是如何在显示内容时模糊容器的背景?

- (IBAction)OnClickingIndicator:(id)sender { 
[self loadView]; 
[self.childViewControllers[0] view].hidden = ![self.childViewControllers[0] view].hidden; 

} 

-(void)loadView 
{ 
UIView *blur = [[UIView alloc]initWithFrame:CGRectMake(0,150,self.view.frame.size.width,self.view.frame.size.height/4)]; 

blur.backgroundColor = [UIColor colorWithRed:92/255 green:100/255 blue:139/255 alpha:0.5]; 

[self.view addSubview:blur]; 

} 

我希望模糊效果在隐藏视图时不会发生,并且隐藏视图时不会发生。

真正的问题是在第一次点击的模糊效果正在发生的事情,但对于下次点击模糊效果是变暗,屏幕渐黑

enter image description here

+0

。更好的方式来添加图像视图。 – Sanjukta

+0

您应该探索https://developer.apple.com/reference/uikit/uivisualeffectview .. – pds

+0

我修改我的答案请尝试一下。希望它能帮助你。 – Sanjukta

回答

1

如果你想上面的图像,然后初始化视图中移出侧该方法。您可以在didLoad方法中初始化它并在您的方法中设置框架。

你可以这样写。 在.h文件中添加:

UIView *blur; 
在.m文件添加

- (void)viewDidLoad { 
    UIView *blur = [[UIView alloc]init]; 
} 

- (IBAction)OnClickingIndicator:(id)sender { 
[self loadView]; 
[self.childViewControllers[0] view].hidden = ![self.childViewControllers[0] view].hidden; 

} 

-(void)loadView 
{ 
blur.frame = CGRectMake(0,150,self.view.frame.size.width,self.view.frame.size.height/4); 

blur.backgroundColor = [UIColor colorWithRed:92/255 green:100/255 blue:139/255 alpha:0.5]; 

[self.view addSubview:blur]; 

} 

如果使用视图它会影响到另一种观点认为它会工作的优良you.Thank您

+0

它的作品,但我需要一个透明的效果,如果我有一个图像,它隐藏下面的内容我想这是模糊的 – gowtham