Вопрос

В «Руководстве Apple по интерфейсу пользователя для мобильных устройств» говорится о Popovers:

<цитата>

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

Единственное решение, которое я могу сейчас придумать, - это отслеживать положение касания при закрытии всплывающего окна и проверять, была ли это позиция другой кнопки. Есть ли более простой способ сделать это?

PS: Я искал в stackoverflow и довольно долго гуглил, прежде чем опубликовать. Извините, если об этом спрашивали здесь раньше.

< sizesUPDATE

Думаю, я не очень хорошо объяснил. Допустим, у меня есть три кнопки. Все они открывают поповер. Мой пользователь нажимает кнопку №1, и открывается всплывающее окно. Пока всплывающее окно открыто, пользователь нажимает кнопку №2. Всплывающее окно закрывается (потому что пользователь нажал за пределами всплывающего окна - поведение по умолчанию для немодальных всплывающих окон), и открывается новое всплывающее окно, потому что пользователь нажал кнопку № 2. И все это без необходимости нажимать дважды: один раз, чтобы закрыть всплывающее окно, и два раза, чтобы открыть новое.

2-е ОБНОВЛЕНИЕ

Я построил простой манекен, чтобы воспроизвести то, что я пытаюсь сделать. Когда пользователь нажимает кнопку и открывается всплывающее окно, метод, открывающий всплывающие окна, не вызывается. Поэтому пользователю нужно дважды щелкнуть, чтобы открыть второе всплывающее окно. Есть идеи?

родовое слово
Это было полезно?

Решение

Если вы используете элементы кнопок панели на панели инструментов, открытое всплывающее окно не автоматически закрывается при нажатии другого элемента кнопки панели.В таких ситуациях вам следует закрыть видимое всплывающее окно и открыть другое за один шаг.

Другие советы

общий

надеюсь поможет вам

Допустим, у вас есть 3 кнопки, каждая из которых открывает всплывающее окно.Вы можете использовать переменную состояния, которая отслеживает, открыто ли в настоящее время всплывающее окно, и внутри каждого метода «открыть всплывающее окно» закройте существующий (если он открыт) перед открытием нового всплывающего окна.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top