这里我在点击我的导航栏右键菜单按钮时添加xib
的视图,我的问题是这个视图是从左到右,但我希望它从右到右左
UIView.animateWithDuration(0.3, animations: { () -> Void in
navController.navigationBar.frame = CGRectMake(-nibView.frame.width, 20,
navController.navigationBar.frame.width,
navController.navigationBar.frame.height)
nibView.frame = CGRectMake( viewSize.frame.width - nibView.frame.width , 0,
viewSize.frame.width, viewSize.frame.height)
viewSize.addSubview(nibView)
})
答案 0 :(得分:0)
呃......首先。
创建一个名为Animator的新类并继承NSObject和UIViewControllerAnimatedTransitioning。
然后向该类添加属性:
let animationDuration = 2.0
var operation: UINavigationControllerOperation = .Push
然后实现两个功能:
func transitionDuration(transitionContext: UIViewControllerContextTransitioning?) -> NSTimeInterval {
return animationDuration
}
func animateTransition(transitionContext: UIViewControllerContextTransitioning) {
}
然后在你的mainViewController中,扩展名UINavigationCOntrollerDelegate,在viewDidLoad()中实现delegate = self并声明:
let transition = Animator()
在扩展程序中,添加此功能:
func navigationController(navigationController: UINavigationController, animationControllerForOperation operation: UINavigationControllerOperation, fromViewController fromVC: UIViewController, toViewController toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? {
transition.operation = operation
return transition
}
在Animator中,实现你的UIViewControllerContextTransitioning。
weak var storedContext: UIViewControllerContextTransitioning?
然后在函数animateTranstion中:
storedContext = transitionContext
let fromVC = transitionContext.viewControllerForKey( UITransitionContextFromViewControllerKey) as! MasterViewController
let toVC = transitionContext.viewControllerForKey( UITransitionContextToViewControllerKey) as! DetailViewController
transitionContext.containerView()?.addSubview(toVC.view)
最后,创建自己的动画师。 :)