gpt4 book ai didi

ios - 如何为类似于 ios 中的 flipkart 的左侧边栏设置动画?

转载 作者:行者123 更新时间:2023-11-28 19:45:57 26 4
gpt4 key购买 nike

我曾尝试在 ios 中为左侧边栏制作动画,如下面的链接所示 http://www.appdesignvault.com/custom-transition-slide-out-navigation/我得到如下输出 enter image description here

但我需要一个类似于 flipkart 的输出转换 enter image description here

如何快速制作倾斜的右 View Controller ?在此先感谢您的帮助。

@Ashraf,目前我已经按照您的指南使用了以下代码。

  func presentNavigation(transitionContext: UIViewControllerContextTransitioning) {
let container = transitionContext.containerView()
let fromViewController = transitionContext.viewControllerForKey(UITransitionContextFromViewControllerKey)
let fromView = fromViewController!.view
let toViewController = transitionContext.viewControllerForKey(UITransitionContextToViewControllerKey)
let toView = toViewController!.view

let size = toView.frame.size
var offSetTransform = CGAffineTransformMakeTranslation(size.width - 120, 0)
offSetTransform = CGAffineTransformScale(offSetTransform, 0.6, 0.6)

snapshot = fromView.snapshotViewAfterScreenUpdates(true)

container.addSubview(toView)
container.addSubview(snapshot)

let duration = self.transitionDuration(transitionContext)

UIView.animateWithDuration(duration, delay: 0.0, usingSpringWithDamping: 0.5, initialSpringVelocity: 0.8, options: nil, animations: {

self.snapshot.transform = offSetTransform

}, completion: { finished in

transitionContext.completeTransition(true)
})

}

func dismissNavigation(transitionContext: UIViewControllerContextTransitioning) {

let container = transitionContext.containerView()
let fromViewController = transitionContext.viewControllerForKey(UITransitionContextFromViewControllerKey)
let fromView = fromViewController!.view
let toViewController = transitionContext.viewControllerForKey(UITransitionContextToViewControllerKey)
let toView = toViewController!.view

let duration = self.transitionDuration(transitionContext)

UIView.animateWithDuration(duration, delay: 0.0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0.8, options: nil, animations: {

self.snapshot.transform = CGAffineTransformIdentity

}, completion: { finished in
transitionContext.completeTransition(true)
self.snapshot.removeFromSuperview()
})
}

@ Ashraf I had tried code as follows

func degreesToRadians(floatValue: Float) -> CGFloat {
return CGFloat(floatValue) * CGFloat(M_PI) / 180.0
}


func presentNavigation(transitionContext: UIViewControllerContextTransitioning) {
let container = transitionContext.containerView()
let fromViewController = transitionContext.viewControllerForKey(UITransitionContextFromViewControllerKey)
let fromView = fromViewController!.view
let toViewController = transitionContext.viewControllerForKey(UITransitionContextToViewControllerKey)
let toView = toViewController!.view

let size = toView.frame.size
var offSetTransform = CGAffineTransformMakeTranslation(size.width - 120, 0)
offSetTransform = CGAffineTransformScale(offSetTransform, 0.6, 0.6)

snapshot = fromView.snapshotViewAfterScreenUpdates(true)

container.addSubview(toView)
container.addSubview(snapshot)

let duration = self.transitionDuration(transitionContext)

UIView.animateWithDuration(duration, delay: 0.0, usingSpringWithDamping: 0.5, initialSpringVelocity: 0.8, options: nil, animations: {

// self.snapshot.transform = offSetTransform

var t: CATransform3D = CATransform3DIdentity
t.m34 = 1.0 / 500.0
var floatValue: CGFloat = self.degreesToRadians(60.0)
t = CATransform3DRotate(t, floatValue, 0, 1, 0)
self.snapshot.transform = t;

}, completion: { finished in

transitionContext.completeTransition(true)
})

}

我收到错误消息“无法将‘CAtransform3D’类型的值分配给‘CGAffineTransform’类型的值”

最佳答案

您可以使用这个第三方 Controller ,它提供与 flipkart 侧边菜单相同的输出 link

关于ios - 如何为类似于 ios 中的 flipkart 的左侧边栏设置动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32182661/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com