Должен ли я добавить нижний лист в качестве подпредставления к текущему контроллеру представления или выдвинуть UIWindow с добавленным подпредставлением? - PullRequest
0 голосов
/ 23 января 2019

Я хочу реализовать нижний лист согласно изображению. У основания будет жест панорамирования, чтобы тянуть вверх и вниз

Что меня смущает:

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

Если я выберу второй вариант как мне обновить окно на панорамировании ?

enter image description here

1 Ответ

0 голосов
/ 23 января 2019

Не следует создавать новый UIWindow. Как правило, приложение для iOS имеет только 1 окно. Два лучших варианта, которые я вижу:

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

  2. Если внутри листа больше логики или лист имеет возможность многократного использования, то для этого лучше создать отдельный UIViewController. Затем вы можете представить это, используя пользовательскую анимацию и контроллер представления. Посмотрите на UIViewControllerAnimatedTransitioning и UIPresentationController для этого.

Я использовал второй вариант раньше. A UIPresentationController позаботьтесь о расположении вида листа в нижней части экрана. Он также затемняет фон и добавляет распознаватели жестов для обработки операций вытягивания и отклонения.

Вы можете использовать этот учебник, чтобы начать работу с UIPresentationController. Вы также можете взять код и адаптировать его под свои нужды: https://www.raywenderlich.com/915-uipresentationcontroller-tutorial-getting-started

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