Отключить элементы на UIVIEW за модальным UIView
-
30-09-2019 - |
Вопрос
У меня есть UIView, который меньше, чем руководящий обзор, поэтому я могу представлять эту точку зрения в виде модального представления, когда нажата кнопка.
Мне удалось сделать следующее: * Добавьте подзвучай для руководства. * Центрированный этот модальный вид
Сейчас я пытаюсь сделать элементы за uiview leflickable. А также добавьте серую тень The нашей кнопки моего модального мнения, чтобы пользователь понимал, что модальный вид - вид в фокусе.
Я хотел бы знать, как это достичь.
Я не хочу использовать модальный переход презентации. Я знаю и уже реализовал это в других проектах. Любая помощь ценится.
Решение
Самое простое было бы положить полноэкранный экран 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];