Контроллер модального представления с MapView и TableView

Я пытаюсь повторить основные функциональные возможности поиска магазинов в новом приложении Starbucks (MapView с табличным представлением ниже), но не уверен в том, как мне поступить в реализации скользящего аспекта представления представления

пример приложения

Основным аспектом функциональности, которую я пытаюсь воспроизвести, является возможность представить модальное изображение и запретить его, сдвинув его вниз с экрана, поскольку я уже могу скопировать представление "Карта + таблица".

3 ответа

Я думаю, что это просто viewcontroller, содержащий 2 основных вида:

  1. Фоновый вид, включая вкладки и вашу личную информационную страницу, которая находится под вкладками.
  2. Представление таблицы, занимающее весь экран.
    • раздел 0: заголовок: пустой заголовок / нет ячеек
    • раздел 1: заголовок: строка поиска / 1-я ячейка: mapView, пересекающая его границы для покрытия заголовка раздела / других ячеек: местоположения
  3. Всякий раз, когда вы прокручиваете "слишком много", они определяют. Они делают анимацию, чтобы скрыть вид таблицы
  4. Чтобы это выглядело как модальный вид, они делают угол карты закругленным.

https://www.cocoacontrols.com/controls/kipulltoreveal Просто создайте собственную ячейку, и вы сможете сделать ее идентичной.

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

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
YourViewController *yourVC= (YourViewController *)
                        [storyboard instantiateViewControllerWithIdentifier:@"yourView"];
[self presentViewController:yourVC animated:YES completion:nil];

Что касается отклонения представления, вам необходимо установить ViewController's interactivePopGestureRecognizer делегируют себя и затем обрабатывают его поведение в -gestureRecognizerShouldBegin:

То есть, если вы хотите, чтобы встроенный поп-жест ( - popViewControllerAnimated:) сработал, вы должны вернуть YES из этого метода. То же самое касается ваших пользовательских жестов - вы должны выяснить, с каким распознавателем вы имеете дело.

Другие вопросы по тегам