从WillResignActive调用时,View的行为与DidBecomeActive不同

时间:2016-12-09 16:02:17

标签: ios swift

我使用此方法重置了我的UI:

func resetUI () {
    self.position = 0.0
    self.percent2 = 0.0
    self.tableView.setContentOffset( CGPoint(x: 0, y: 0) , animated: true)
}

然后有一个动画背景叠加:

override func scrollViewDidScroll(_ scrollView: UIScrollView) {
    let height: CGFloat = scrollView.bounds.size.height
    self.position = max(scrollView.contentOffset.y, 0.0)
    self.percent2 = min(position / height, 0.99)
    alphaView?.alpha = percent2
    extraView?.alpha = percent2
}

但是,当我从 resetUI致电UIApplicationWillResignActive时效果很好,当我从 UIApplicationDidBecomeActive调用它时,它的效果不佳,因为当您滚动时,模糊效果不会显示。

为什么会发生这种情况的任何想法?我不确定为什么这会在UIApplicationWillResignActive而不是UIApplicationDidBecomeActive中完美。

以下是如何根据需要设置叠加层的方式:

     let overlay = UIVisualEffectView()
     overlay.effect = UIBlurEffect(style: .extraLight)
     overlay.alpha = 1.0
     overlay.frame = self.view.bounds
     alphaView?.addSubview(overlay)

以下是我如何在需要时收到UIApplication详细信息的通知:

    NotificationCenter.default.addObserver(
        self,
        selector: #selector(resetUI),
        name: NSNotification.Name.UIApplicationDidBecomeActive,
        object: nil)

0 个答案:

没有答案