2011-01-07 7 views
2

ボタンがクリックされたときにこのビューをモーダルビューとして表すことができるように、スーパービューよりも小さいUIViewがあります。モーダルUIViewのUIViewの要素を無効にする

私は以下を行うことができました: *スーパービューにサブビューを追加してください。 *このモーダルビューを中心に

私は現在、UIViewの背後にある要素をunclickableにしようとしています。また、モーダルビューは私のモーダルビューの右側に追加して、モーダルビューがフォーカスのあるビューであることをユーザーが理解できるようにします。

私はこれを達成する方法を知りたいと思います。

プレゼンテーションモーダルトランジションは使用しません。私は既にこれを他のプロジェクトで実装しています。 何か助けていただければ幸いです。

答えて

10

最も単純なことは、フルスクリーンUIViewを、「モーダル」ビューの背景に半透明の灰色の背景で置くことです。それはすべての接触を傍受するでしょう。ビュー上のタッチイベントを無効にするmyView.userInteractionEnabled = NOを設定することができ、今後の参考のために

UIView *dimBackgroundView = [[UIView alloc] initWithFrame:theSuperview.bounds]; 
dimBackgroundView.backgroundColor = [[UIColor grayColor] colorWithAlphaComponent:.5f]; 

[theSuperview addSubview:dimBackgroundView]; 
[theSuperview addSubview:modalView]; 

:それは次のようになります。

0

いくつかの方法があります。

インスタンスvar作成します: カスタムの場所を持つカスタムビューを持っている場合、あなたはそのようにそれを修正することができ

UIView* backgroundView; 

をそして、あなたがそれを必要なときに、カスタムビューの後ろにそれを置く:

if (backgroundView == nil) 
     backgroundView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.height, [UIScreen mainScreen].bounds.size.width)]; 
backgroundView.backgroundColor = [[UIColor grayColor] colorWithAlphaComponent:.5f]; 
[self.view addSubview:backgroundView]; 
[backgroundView animateBump:customView.view]; 
[backgroundView addSubview:customView.view]; 

あなたはもう

[backgroundView removeFromSuperview]; 
をそれを必要としません
関連する問題