加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何删除打印语句会破坏我的项目? (SWIFT / Xcode的)

发布时间:2020-12-14 04:27:34 所属栏目:百科 来源:网络整理
导读:如果我注释掉打印行,那么toVC中的所有内容都无法加载. toVC的每个元素都是零.如果我离开打印声明,一切都按预期工作.为什么? 我在UITabBarControllerDelegate的animationControllerForTransitionFrom方法中,如果这有帮助的话. 我以前从未有过这样的事情.一旦
如果我注释掉打印行,那么toVC中的所有内容都无法加载. toVC的每个元素都是零.如果我离开打印声明,一切都按预期工作.为什么?

我在UITabBarControllerDelegate的animationControllerForTransitionFrom方法中,如果这有帮助的话.

我以前从未有过这样的事情.一旦我删除了该行,它就会在我第一次触摸与IBOutlet相连的任何元素时中断.任何帮助将不胜感激.

func animateToProfile(using transitionContext: UIViewControllerContextTransitioning) {
    guard let fromVC = transitionContext.viewController(forKey: .from)?.childViewControllers.first,let toVC = transitionContext.viewController(forKey: .to)?.childViewControllers.first as? ProfileViewController,let superviewToAdd = toVC.parent?.view else { return }

    print("(toVC.view.frame)")

    let sideMenuOriginX = UIScreen.main.bounds.width * (98 / 414)

    toVC.sideMenuView.frame.origin.x = toVC.view.frame.width
    toVC.visualEffectView.alpha = 0

    transitionContext.containerView.addSubview(superviewToAdd)

    let duration = transitionDuration(using: transitionContext)

    UIView.animate(withDuration: duration,delay: 0,options: [.curveEaseInOut],animations: {
        toVC.sideMenuView.frame.origin.x = sideMenuOriginX
        toVC.visualEffectView.alpha = 1
    },completion: { _ in
        transitionContext.completeTransition(!transitionContext.transitionWasCancelled)
    })
}

解决方法

啊. UIViewControllers中的视图通常由SDK生命周期的相关部分延迟加载.这就是为什么你在viewDidLoad中设置代码的时候加载视图的时间.

因为在print语句中调用VC.view时它会被延迟加载,导致它被加载.

我怀疑这行到VC.sideMenuView.frame.origin.x = toVC.view.frame.width可能是一个问题.当您设置视图的某个属性然后被覆盖时.

要尝试调试此操作,请尝试单步执行该行.或者,您可以使用简单的_ = toVC.view替换print语句以强制加载视图.或者,在代码中的各个点添加一些print(toVC.isViewLoaded)调试语句,以查看视图是否实际被加载.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读