如何在swift中逐渐隐藏状态栏
Posted
技术标签:
【中文标题】如何在swift中逐渐隐藏状态栏【英文标题】:How to hide status bar gradually in swift 【发布时间】:2016-06-23 09:04:20 【问题描述】:我有一个表格视图控制器。当用户向上滚动表格时,我想逐渐隐藏 iphone 状态栏(包括电池、WIFI 等的顶部)。我知道如何通过实现 prefersStatusBarHidden() 方法来隐藏状态栏。但它不会在表格向上滚动时隐藏它。所以我希望它成为表格的一部分。它应该能够随着桌子的移动而移动。
【问题讨论】:
Proper way to hide status bar on ios, with animation and resizing root view的可能重复 【参考方案1】:没有办法移动状态栏;它是可见的或隐藏的。但是,您可以通过将UITableView
即将滚动时的状态替换为包含包含状态栏的屏幕截图的UIView
来解决此问题。
我将从UIScrollViewDelegate.
开始,因为UITableViewDelegate
是UIScrollViewDelegate,
的子类,您可以在视图控制器中将UITableView
的委托设置为self.
有了这个,您现在可以聆听滚动动作。
当UITableView
位于顶部并且用户向下滚动时,我建议截取状态栏的屏幕截图,将其添加到UIView
,然后以与UITableView
正在移动(请参阅 UIScrollViewDelegate
文档以获取帮助)。同样,当滚动到顶部时,我会让视图向下移动到状态栏的位置,然后移除视图,并将状态栏设置为可见。
使用此方法,您可以看到状态随表格视图上下移动的外观。
【讨论】:
【参考方案2】:最初你得到 UItableview 的滚动方向,然后根据方向设置为 BOOL 值
func scrollViewDidScroll(scrollView: UIScrollView)
if(scrollView.panGestureRecognizer.translationInView(scrollView.superview).y > 0)
print("up")
UIApplication.sharedApplication().setStatusBarHidden(true, withAnimation: .Fade) //.Slide
else
print("down")
UIApplication.sharedApplication().setStatusBarHidden(false, withAnimation: .Fade) //.Slide
UIApplication.sharedApplication().setStatusBarHidden 在 iOS9 中已弃用
选择 2
crete one global Value for get the current position
var hide:Bool = false
func scrollViewDidScroll(scrollView: UIScrollView)
if(scrollView.panGestureRecognizer.translationInView(scrollView.superview).y > 0)
print("up")
hide = true
else
print("down")
hide = false
UIView.animateWithDuration(0.5) () -> Void in
self.setNeedsStatusBarAppearanceUpdate()
override func preferredStatusBarUpdateAnimation() -> UIStatusBarAnimation
return UIStatusBarAnimation.Slide
override func prefersStatusBarHidden() -> Bool
return hide
【讨论】:
【参考方案3】:试试这个
func scrollViewDidScroll(scrollView: UIScrollView)
UIApplication.sharedApplication().statusBarHidden = true
func scrollViewDidEndDecelerating(scrollView: UIScrollView)
UIApplication.sharedApplication().statusBarHidden = false
【讨论】:
它可以工作,但它不会随着表格向上滚动而隐藏。 试试这个:***.com/questions/30271271/…以上是关于如何在swift中逐渐隐藏状态栏的主要内容,如果未能解决你的问题,请参考以下文章