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 для образца проекта.

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

  • вызов родительского метода uiviewcontroller из дочернего модуля uiviewcontroller
  • iOS - передача данных в толкнул viewcontroller
  • Что такое строгий тип данных «L»?
  • Как взаимодействовать с UITableView в UIViewController?
  • IOS 7 пользовательская анимация UINavigationController не работает с mapView в контроллере назначения
  • Понимание значения переходов UIViewController
  • Держите UINavigationController во время перехода к следующему UIViewController, но скройте UITabBarController
  • Запуск определенного viewController в ответ на удаленное push-уведомление
  • Автоматическая компоновка детского контейнера, встраивающего UIViewController
  • Как создать пользовательский класс представления iOS и создать несколько экземпляров его (в IB)?
  • Доступ к родительскому UIViewController UICollectionView
  • Interesting Posts

    Печать на iOS показывает желтый цвет в полях

    Поиск типа изображения из NSData или UIImage

    NSMetadataQuery игнорирует тип пользовательского файла

    Как отлаживать приложение в режиме совместимости на iOS 7?

    Отрегулируйте рамку представленного представления в UIPresentationController после презентации

    Закладка iPhone Safari создает новую сессию

    Что такое пакет размещенного содержимого в загрузчике приложений?

    IOS: как создать анимацию эффекта разрушения на экране uiview

    «Приложение не смогло уклониться в течение 60-х» в проекте «Реагент-родной»

    UIGestureRecognizer – получить ссылку на затронутый UIViewController вместо его просмотра?

    Быстрая компиляция – ошибка, вызывающая метаданные класса

    Facebook iOS API publishInstall

    Динамическое изменение размера UITableView в UIViewController, созданное в Storyboard

    Загрузка видео на YouTube с приложения

    iOS 7 Multipeer Connectivity – MCNearbyServiceBrowser находит себя?

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