gpt4 book ai didi

ios - 在iOS 11中调用self.setNeedsStatusBarAppearanceUpdate()时,scrollViewDidScroll崩溃

转载 作者:行者123 更新时间:2023-12-01 19:50:04 31 4
gpt4 key购买 nike

我有这种方法

func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView is GLIndexedCollectionView { return }

if scrollView.contentOffset.y >= 120 && self.navBarHidden == true {
self.navBarHidden = false
self.setNeedsStatusBarAppearanceUpdate()

self.topTvConstraint.constant = 44.0
self.view.layoutIfNeeded()

self.navigationBarConstraint.constant = 65

UIView.animate(withDuration: 0.2, delay: 0.0, options: .curveEaseOut, animations: {
self.view.layoutIfNeeded()
}, completion: nil)

var scrollBounds = self.tv.bounds
scrollBounds.origin = CGPoint(x: 0, y: 185)
self.tv.bounds = scrollBounds

}
}

这个想法是对顶部栏进行动画处理并更改状态栏颜色,因此我将setNeedsStatusBarAppearanceUpdate设置为
override var preferredStatusBarStyle: UIStatusBarStyle {
if navBarHidden {
return .lightContent
}

return .default
}

但是....如果我在Xcode 9中编译并在带有iOS 11的真实设备或模拟器中运行它,它将在此行崩溃
self.setNeedsStatusBarAppearanceUpdate()

如果我尝试iOS 10.3可以正常工作,为什么?任何帮助,请!

enter image description here

最佳答案

if #available(iOS 11.0, *) {
setNeedsUpdateOfScreenEdgesDeferringSystemGestures()
} else {
setNeedsStatusBarAppearanceUpdate()
}

注意:这是iOS 11中的微小变化,但意义重大。如果您依靠隐藏状态栏来在屏幕边缘使用手势,则应更新应用并覆盖iOS 11的 setNeedsUpdateOfScreenEdgesDeferringSystemGestures

关于ios - 在iOS 11中调用self.setNeedsStatusBarAppearanceUpdate()时,scrollViewDidScroll崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46438980/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com