Как я могу отключить взаимодействие с пользователем за подпредставлением? - PullRequest
0 голосов
/ 31 мая 2018

В моем проекте есть вид A , внутри которого есть вид контейнера, который показывает несколько кнопок.Если я нажимаю на эти кнопки, появляется другое подпредставление.

Когда пользователь нажимает на кнопку и появляется подпредставление, я хочу отключить все взаимодействия за пределами этого подпредставления, которое появляется.Спасибо.

Ответы [ 3 ]

0 голосов
/ 31 мая 2018

После того, как ваше подпредставление появляется, вы можете перебрать все его суперпредставления и установить для его взаимодействия с пользователем значение false.

UIView* temp = self.view.superview;
temp.userInteractionEnabled = false;

Теперь вы можете рекурсивно вызывать это для всех своих суперпредставлений, чтобы отключить и другие функции.

0 голосов
/ 31 мая 2018

Есть два способа сделать это

1) Отключить пользовательское вмешательство для backgroundView.Но вы не должны добавлять свой новый вид как подпредставление backgroundView.вам нужно добавить новый вид как подпредставление суперпредставления.

self.view.addSubView(YOUR_NEW_VIEW)

Затем вы должны отключить пользовательское вмешательство для вашего backgroundView

YOUR_BACKGROUND_VIEW.userInteractionEnabled = false

2) Добавить один UIView как подпредставление вашего backgroundViewс границами этого вида и backgroundColor как .clear

let tempView = UIView(frame: YOUR_BACKGROUND_VIEW.bounds)
tempView.backgroundColor = .clear
YOUR_BACKGROUND_VIEW.addSubView(tempView)

, затем добавьте ваш новый вид в подпредставление tempView

tempView.addSubView(YOUR_NEW_VIEW)

Выберите тот, который подходит вам.Надеюсь, это поможет вам

0 голосов
/ 31 мая 2018

Не добавляйте другое подпредставление в представление контейнера.Добавьте его непосредственно в представление или создайте второе представление контейнера для своего подпредставления.Затем отключите взаимодействие с пользователем для представления контейнера вашей кнопки.

containerView.userInteractionEnabled = false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...