Modal Uiviewの背後にあるUiviewの要素を無効にします
-
30-09-2019 - |
質問
私はスーパービューよりも小さいuiviewを持っているので、ボタンがクリックされたときにこのビューをモーダルビューとして表すことができます。
私はなんとか次を遂行しました: *スーパーワークにサブビューを追加します。 *このモーダルビューを中心にしました
私は今、uiviewの背後にある要素をlicklickableできないようにしようとしています。また、ユーザーがモーダルビューが焦点のビューであることを理解するように、私のモーダルビューの灰色の影を追加します。
これを達成する方法を知りたいです。
プレゼンテーションモーダルトランジションを使用したくありません。私は他のプロジェクトでこれを知っており、すでに実装しています。どんな助けも感謝しています。
解決
最も簡単なことは、フルスクリーンを敷設することです UIView
「モーダル」ビューの後ろに半透明の灰色の背景があります。その後、すべてのタッチを傍受します。それは次のように見えるかもしれません:
UIView *dimBackgroundView = [[UIView alloc] initWithFrame:theSuperview.bounds];
dimBackgroundView.backgroundColor = [[UIColor grayColor] colorWithAlphaComponent:.5f];
[theSuperview addSubview:dimBackgroundView];
[theSuperview addSubview:modalView];
今後の参照のために、設定できます myView.userInteractionEnabled = NO
ビューでタッチイベントを無効にする。
他のヒント
それを行う方法はいくつかあります。カスタムロケーションがあるカスタムビューがある場合は、次のように変更できます。
インスタンスを作成します 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];
所属していません StackOverflow