我有一个表视图控制器。当用户向上滚动表格时,我想逐渐隐藏iphone状态栏(包括电池,WIFI等的顶部)。我知道如何通过实现prefersStatusBarHidden()方法来隐藏状态栏。但它不会随着桌面向上滚动而隐藏它。所以我希望它成为桌子的一部分。它应该能够随着桌子移动而移动。
答案 0 :(得分: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()。在iOS9中不推荐使用setStatusBarHidden
<强>选择-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
}
答案 1 :(得分:1)
试试这个
func scrollViewDidScroll(scrollView: UIScrollView)
{
UIApplication.sharedApplication().statusBarHidden = true
}
func scrollViewDidEndDecelerating(scrollView: UIScrollView)
{
UIApplication.sharedApplication().statusBarHidden = false
}
答案 2 :(得分:1)
无法移动状态栏;它是可见的还是隐藏的。但是,您可以通过使用包含状态栏的屏幕截图的UITableView
滚动UIView
来替换状态。
我将从UIScrollViewDelegate.
开始由于UITableViewDelegate
是UIScrollViewDelegate,
的子类,您可以在视图控制器中将UITableView
的委托设置为{ {1}}通过此操作,您现在可以收听滚动动作。
当self.
位于顶部并且用户向下滚动时,我建议您截取状态栏的屏幕截图,将其添加到UITableView
,然后将该视图移至与UIView
移动速度相同(请参阅UITableView
文档以获取帮助)。同样,当滚动到顶部时,我会让视图向下移动到状态栏的位置,然后删除视图,并将状态栏设置为可见。
使用此方法,您可以使用表格视图显示状态的上下移动。