2016-11-24 15 views
1

私は最初に隠されていたイメージビューの半分の画面サイズであるコンテナビューからなるビューコントローラを持っています。コンテナはtableViewに埋め込まれています。私は、クリックするとコンテナの表示が表示され、2回目のクリックで隠れるボタンがあります。画面の半分であるコンテナの背景をぼかす方法

私の質問は、コンテンツが表示されているときにコンテナの背景をぼかす方法ですか?

- (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

you.Thankあなたのために正常に動作します。イメージビューを追加する方が簡単です。 – Sanjukta

+0

https://developer.apple.com/reference/uikit/uivisualeffectviewを参照する必要があります。 – pds

+0

私は自分の答えを変更してみてください。それがあなたを助けてくれることを祈っています。 – Sanjukta

答えて

1

を得ているぼかしビューdidLoadメソッドでそれを初期化し、あなたのメソッドでフレームを設定することができます。

この方法で書き込むことができます。 .hファイルで 追加します.Mファイルの追加で

UIView *blur; 

を:

- (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]; 

} 

それはあなたのビューを使用している場合、それは別のビューに影響を与える

+0

それは動作しますが、透明な効果が必要です。画像がある場合は、下のコンテンツを隠しています – gowtham

関連する問題