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

时间:2016-11-24 12:27:29

标签: ios objective-c overlay uiblureffect

我有一个视图控制器,它包含一个容器视图,它是图像视图的一半屏幕尺寸,最初是隐藏的。容器嵌入了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

1 个答案:

答案 0 :(得分: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];

} 

它会对你有用。谢谢你