Я пытаюсь реализовать анимацию для прямоугольника, чтобы выполнить модальное вертикальное смахивание. Однако, когда я пытаюсь скомпилировать код, я получаю следующую ошибку «Тип выражения Swift 4« @value CGRect »является неоднозначным без дополнительного контекста». Я изолировал проблему с аргументами, которые передаются значению инициализации CGRect, но в соответствии с документацией Apple по iOS этих параметров должно быть достаточно, чтобы указать представление 'frame', которое мне нужно анимировать.
Вот мой код:
func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
guard
let fromView = transitionContext.viewController(forKey: .from),
let toView = transitionContext.viewController(forKey: .to)
else {
return
}
let containerView = transitionContext.containerView
containerView.insertSubview((toView.view)!, belowSubview: (fromView.view)!)
let toFrame = transitionContext.finalFrame(for: toView)
let screenBounds = UIScreen.main.bounds
let bottomLeftCorner = CGPoint(x: 0, y: screenBounds.height)
let finalFrameForVC = CGRect(origin: bottomLeftCorner, size: screenBounds.size)
UIView.animate(withDuration: 2, delay: 1,
options: [], (using: transitionContext.finalFrame(for: fromView)),
animations: {
fromView.view.frame = finalFrameForVC
},
completion: { _ in
transitionContext.completeTransition(!transitionContext.transitionWasCancelled)
})
}