如何模糊一半屏幕的容器背景

How to blur the background of a container which is half of the screen

我有一个视图控制器,它由一个容器视图组成,它是图像视图上方屏幕大小的一半,最初是隐藏的。容器嵌入了 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];

}

我希望模糊效果在该视图未隐藏时发生,而在视图隐藏时不发生。

真正的问题是第一次点击模糊效果,但下一次点击模糊效果变暗,屏幕变暗

如果你想要上面的图像然后初始化视图 method.You 可以在视图 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你

很好用