[英]hidesBarsOnSwipe with UITabBar
我最近切换到在我的应用程序中使用UITabBarController
,并没有发现我无法使hidesBarsOnSwipe
能够使我很开心。 我曾经简单地说过(在视图控制器中) hidesBarsOnSwipe = true
,但是现在不起作用了。 如果有人可以帮助我完成这项工作,那就太好了。
谢谢!
您可以将操作添加到hideOnSwipe中,如下所示
[self.navigationController.barHideOnSwipeGestureRecognizer addTarget:self action:@selector(swipeGesture:)];
在swipeGesture方法中添加所需的代码。 隐藏/取消隐藏标签栏。
我解决了这个问题。 我已经将UITabBarController
嵌入到UINavigationController
,并将其作为窗口的根视图控制器。 当我将根目录设置为标签栏控制器后,它就像一个魅力一样工作。
谢谢!
在迅速
self.navigationController?.barHideOnSwipeGestureRecognizer.addTarget(self, action: "swipeGestuere")
声明一个隐藏的变量,这有助于使标签栏返回
func swipeGestuere() {
if (hidden == true){
self.bottomTabBar.isHidden = true
hidden = false
}
else{
self.bottomTabBar.isHidden = false
hidden = true
}
}
我通过调整 UITabBarController
的大小刚好足以使选项卡栏脱离屏幕来解决此问题:
- (void)setTabBarHidden:(BOOL)hidden
{
CGRect frame = self.originalViewFrame;
if (hidden)
{
frame.size.height += self.tabBar.size.height;
}
self.view.frame = frame;
}
然后,您可以将KVO添加到滚动视图中:
[scrollView addObserver:self
forKeyPath:@"contentOffset"
options:NSKeyValueObservingOptionOld
context:nil];
并在滚动条上隐藏/显示标签栏:
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context
{
CGPoint oldOffset = [(NSValue *)change[NSKeyValueChangeOldKey] CGPointValue];
if (!_hidesBarsOnScroll || _scrollView.contentOffset.y == oldOffset.y)
return;
// Show on scroll up
if (_barsHidden &&
scrollView.contentOffset.y < oldOffset.y &&
scrollView.contentOffset.y + scrollView.bounds.size.height < scrollView.contentSize.height) // Skip on bottom
{
[self.navigationController setNavigationBarHidden:NO
animated:YES]; // Also navigation bar!
[self.tabBarController setTabBarHidden:NO
animated:YES];
_barsHidden = NO;
}
// Hide on scroll down
if (!_barsHidden &&
scrollView.contentOffset.y > 0 && // Skip on top
scrollView.contentOffset.y > oldOffset.y)
{
[self.navigationController setNavigationBarHidden:YES
animated:YES];
[self.tabBarController setTabBarHidden:YES
animated:YES];
_barsHidden = YES;
}
}
您可以在这里查看此实现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.