【问题标题】:ios swift custom transition to darken fromViewControllerios swift自定义过渡到从ViewController变暗
【发布时间】:2015-08-13 19:56:12
【问题描述】:

我想为我的视图控制器呈现一个自定义的过渡,这样fromViewController 就会变暗,就像呈现一个 AlertViewController 一样。 我已经创建了我的 customTransition 管理器:

func animateTransition(transitionContext: UIViewControllerContextTransitioning) {
    let container = transitionContext.containerView()
    let fromView = transitionContext.viewForKey(UITransitionContextFromViewKey)!
    let toView = transitionContext.viewForKey(UITransitionContextToViewKey)!

    let fadeRect = CGRectMake(0, 0, fromView.frame.size.width, fromView.frame.size.height)
    let fadeView = UIView(frame: fadeRect)

    if  (self.presenting == true){

        fadeView.backgroundColor = UIColor.blackColor()
        fadeView.alpha = 0

        fromView.addSubview(fadeView)
        container.insertSubview(fadeView, aboveSubview: fromView)
    } else {

//             adding subviews to container
    }

    let duration = self.transitionDuration(transitionContext)

    UIView.animateWithDuration(duration, animations: { () -> Void in

        if  (self.presenting == true){
            fadeView.alpha = 0.5
        } else {

        }
        }) { (Bool) -> Void in
            if self.presenting{
                container.addSubview(toView)
            }

            transitionContext.completeTransition(true)
    }
}

}

我将我的过渡经理分配给toViewController,如下所示:

var purchaseSpecialItemsViewController = self.storyboard?.instantiateViewControllerWithIdentifier("specialItemPurchaseVC") as! BRSpecialItemPurchaseViewController
    purchaseSpecialItemsViewController.transitioningDelegate = self.fadedTransitionManager

    self.presentViewController(purchaseSpecialItemsViewController, animated: true, completion: nil)

我将要显示的视图控制器在情节提要中,大小固定。它有一个清晰的背景,我在那里添加了一个表格视图,我希望它位于屏幕的中心。

TableView 显示没有问题,但我根本看不到 fromViewController。它只是黑色,即使我将黑色背景的 alpha 设置为 0,后来动画为 0.5。

我以模态方式展示视图控制器,这是导致问题的原因吗?我应该改用推送和弹出操作吗?

【问题讨论】:

    标签: ios custom-transition


    【解决方案1】:

    如此处所述:http://mathewsanders.com/custom-menu-transitions-in-swift/

    我需要像这样添加模态演示样式:

    purchaseSpecialItemsViewController.modalPresentationStyle = UIModalPresentationStyle.OverFullScreen

    而不是获取 ViewControllersViews,使用

    let screens: (from: UIViewController, to: UIViewController) = (transitionContext.viewControllerForKey(UITransitionContextFromViewControllerKey)!, transitionContext.viewControllerForKey(UITransitionContextToViewControllerKey)!)

    访问 ViewControllers。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-06
      • 2014-09-08
      • 1970-01-01
      • 2018-11-05
      • 1970-01-01
      • 2013-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多