我在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)调试语句,以查看视图是否实际被加载.
总结以上是内存溢出为你收集整理的如何删除打印语句会破坏我的项目? (SWIFT / Xcode的)全部内容,希望文章能够帮你解决如何删除打印语句会破坏我的项目? (SWIFT / Xcode的)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)