2016-11-24 62 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