【问题标题】:How to blur the background of a container which is half of the screen如何模糊占屏幕一半的容器的背景
【发布时间】:2016-11-24 12:27:29
【问题描述】:

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

}

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

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

【问题讨论】:

标签: ios objective-c overlay uiblureffect


【解决方案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];

} 

它会很好用。谢谢你

【讨论】:

  • 它可以工作,但如果我有一个图像它隐藏下面的内容我需要一个透明的效果我希望它是模糊的
猜你喜欢
  • 2011-12-10
  • 2013-08-15
  • 2015-12-20
  • 2015-11-05
  • 1970-01-01
  • 1970-01-01
  • 2021-08-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多