MoZhouqi/KMNavigationBarTransition

UIViewControllerWrapperView 背景色的问题

chenofgit opened this issue · 3 comments

UIViewControllerWrapperView 刚开始是clearcolor,
push某一个控制器后
UIViewControllerWrapperView背景变成白色不透明了

@chenofgit

假设你的控制器是A,那么你的A是不是包装了一个导航栏控制器B,然后通过设置B的转场动画样式来模态弹出B的,那么在UIViewController+KMNavigationBarTransition.m中的km_viewWillLayoutSubviews这个方法中会把背景修改成白色:
[tc containerView].backgroundColor = [self.navigationController km_containerViewBackgroundColor];

建议解决方案有两个:

  1. 把你的A的modalPresentationStyle也设置一个值,只要不是none就行;

  2. 在A的viewWillLayoutSubviews写下下面这段代码:
    -- Swift

override func viewWillLayoutSubviews() {
        super.viewWillLayoutSubviews()
        if let tc = transitionCoordinator,
            let bgColor = tc.containerView.backgroundColor, bgColor != .clear {
            tc.containerView.backgroundColor = .clear
         }
}

該問題仍然沒有解決

@chenofgit 您解決了嗎?

@chenofgit @League2EB 你们可以重写 km_containerViewBackgroundColor 方法