gpt4 book ai didi

ios - UITableView:向上滑动时收缩标签栏和导航栏

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:17:45 27 4
gpt4 key购买 nike

场景

我有一个应用程序使用标签栏 Controller (屏幕底部)和导航 Controller (屏幕顶部)UI 设计。在一个 View Controller 上,我有一个 UITableView,其中包含用户将“向上滑动”以滚动浏览表格以查看内容的内容。

需要

很像雅虎!和 Instagram 应用程序,我希望能够在感觉到用户在 tableView 上向上滑动时让顶部导航栏和底部标签栏“收缩”和“消失”。当然,当用户再次向下滑动时,我希望它们都重新出现。

问题

有人知道怎么做吗?

最佳答案

要隐藏 UITabbarControllerUITabbar 其中包含 UINavigationControllerUITableViewController 在堆栈一中应该使用 hidesBarsOnSwipe 属性并为 barHideOnSwipeGestureRecognizer 添加自定义选择器:

@implementation SomeTableViewController

- (void)willMoveToParentViewController:(UIViewController *)parent
{
if (parent) {
self.navigationController.hidesBarsOnSwipe = YES;
[self.navigationController.barHideOnSwipeGestureRecognizer addTarget:self action:@selector(swipe:)];
}
else {
self.navigationController.hidesBarsOnSwipe = NO;
[self.navigationController.barHideOnSwipeGestureRecognizer removeTarget:self action:@selector(swipe:)];
}
}

- (void)swipe:(UIPanGestureRecognizer *)recognizer
{
UINavigationBar *bar = self.navigationController.navigationBar;

BOOL isHidden = (bar.frame.origin.y < 0);

[self.tabBarController.tabBar setHidden:isHidden];

[[UIApplication sharedApplication] setStatusBarHidden:isHidden withAnimation:UIStatusBarAnimationSlide];
}

这样一来就可以隐藏tabbar和statusBar。也可以添加一些动画效果来隐藏/显示这些条。

在释放 self 之前移除选择器非常重要。否则,下次使用 barHideOnSwipeGestureRecognizerself.navigationController 时肯定会崩溃。

请注意,此方法仅适用于 iOS8+。

关于ios - UITableView:向上滑动时收缩标签栏和导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25247818/

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