iOS Пользовательский поп-переход – как проскальзывание на рассказе snapchat

Я пытаюсь создать настраиваемый поп-переход, похожий на то, что snapchat имеет, где, когда вы прокручиваете вниз по истории, вид начинает сокращаться, а предыдущий контроллер просмотра можно увидеть в фоновом режиме.

Мне не нужно, чтобы это было фантазией, все, что я хочу, сокращает круг. Мне удалось создать пользовательский переход на push, который «масштабирует» контроллер представления, который будет, так сказать, оттолкнут из этого урока . И для поп-музыки я в принципе просто хочу ее отменить. Мой код для пользовательской анимации push в основном таков:

func animateTransition(transitionContext: UIViewControllerContextTransitioning) { //1 self.transitionContext = transitionContext //2 var containerView = transitionContext.containerView() var fromViewController = transitionContext.viewControllerForKey(UITransitionContextFromViewControllerKey) as! ViewController var toViewController = transitionContext.viewControllerForKey(UITransitionContextToViewControllerKey) as! ViewController var button = fromViewController.button //3 containerView.addSubview(toViewController.view) //4 var circleMaskPathInitial = UIBezierPath(ovalInRect: button.frame) var extremePoint = CGPoint(x: button.center.x - 0, y: button.center.y - CGRectGetHeight(toViewController.view.bounds)) var radius = sqrt((extremePoint.x*extremePoint.x) + (extremePoint.y*extremePoint.y)) var circleMaskPathFinal = UIBezierPath(ovalInRect: CGRectInset(button.frame, -radius, -radius)) //5 var maskLayer = CAShapeLayer() maskLayer.path = circleMaskPathFinal.CGPath toViewController.view.layer.mask = maskLayer //6 var maskLayerAnimation = CABasicAnimation(keyPath: "path") maskLayerAnimation.fromValue = circleMaskPathInitial.CGPath maskLayerAnimation.toValue = circleMaskPathFinal.CGPath maskLayerAnimation.duration = self.transitionDuration(transitionContext) maskLayerAnimation.delegate = self maskLayer.addAnimation(maskLayerAnimation, forKey: "path") } 

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

До сих пор я пытался инвертировать маску, аналогичную этому (stackoverflow / questions / 14411765 / ios-invert-mask-in-drawrect), и это (stackoverflow / questions / 16512761 / calayer-with-transparent-hole-in-it ), но я не могу за свою жизнь заставить работать правильно.

Этот проект github, похоже, похож на то, что я хочу, но я не смог воссоздать то, что он сделал. Этот проект звездных войн (github / Yalantis/StarWars.iOS) также, похоже, делает что-то похожее на то, что я хочу (от Дарта Вейдера до Анакина), но я думаю, что он использует скриншоты, которые на самом деле я не хочу делать.

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

Извините за странные ссылки, у меня пока нет достаточной репутации, чтобы разместить более двух ссылок.

Я был бы очень признателен за помощь или помощь!

tl; dr: snapchat-подобный поп-переход, когда вы прокручиваете сюжет.

One Solution collect form web for “iOS Пользовательский поп-переход – как проскальзывание на рассказе snapchat”

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

введите описание изображения здесь

  • Нежелательные синие цветные линии вокруг элементов управления viewcontroller и раскадровки
  • UITableViewController или UIViewController при добавлении дополнительных элементов управления
  • Преобразование UIView: fromView: возврат большего прямоугольника?
  • Как изменить / изменить цвет UINavigationBar?
  • Как удалить предыдущий ViewController
  • Обновление позиции xib-представления после загрузки uiviewcontroller?
  • Как отменить UIWebView?
  • Как открыть приложение для фотографий из UIViewController?
  • Как открыть контроллер вида в ландшафтном режиме?
  • Просмотр размера с настройкой навигационной панели для скрытия с помощью push / pop
  • UIViewController viewDidLoad и viewWillAppear: Какое надлежащее разделение труда?
  • Interesting Posts

    воспроизведение mp3-файла в приложении iOS

    alertViewShouldEnableFirstOtherButton не вызывается

    UI Tests – isSelected всегда возвращает false

    Я не могу сохранить и получить изображение в iOS

    Ошибка ограничения MKMapkit при повторном открытии проекта

    Framework с Cococapods приводит к предупреждению «Класс XY реализован в обоих»

    iOS: Как сохранить имя пользователя и пароль в приложении?

    Uncrustify: вложенное блокирование блоков неверно

    Почему Core Data Назовите таблицы и атрибуты, которые он создает в SQLite с префиксом Z?

    Цель C – получить локализованные названия Weekend и Weekday?

    Странное поведение с iOS kABPersonModificationDateProperty, похоже, постоянно обновляется

    Вставить векторную графику с анимацией в собственное приложение iOS

    @IBDesignable UIButton Extension

    Как установить кернинг (расстояние между символами) в заголовке UINavigationBar – Swift или Objective-C

    Ошибка выделения / освобождения Objective C

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.