我使用此方法重置了我的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)