UITableView:向上滑动时缩小选项卡栏和导航栏

2024-01-03

Scenario

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

Need

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

Question

有谁知道如何做到这一点?


To hide UITabbar of UITabbarController其中包含UINavigationController with UITableViewController在堆栈中应该使用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];
}

这样就可以同时隐藏选项卡栏和状态栏。还可以添加一些动画效果来隐藏/显示这些栏。

之前删除选择器非常重要self已被解除分配。否则,下次使用时肯定会崩溃barHideOnSwipeGestureRecognizer with self.navigationController.

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UITableView:向上滑动时缩小选项卡栏和导航栏 的相关文章

  • ViewController.swift(界面)文件的用途是什么 - 在 Counterparts 中

    我刚刚注意到一个名为ViewController swift Interface 当我创建第一个 ViewController 时 Xcode 自动创建了它 Swift 中的类是否具有 需要与 Objective C 中相同的接口 并且由
  • 通过 NSDate 过滤 Realm 中的查询会抛出 NSInvalidArgumentException

    我到处寻找 甚至访问了一些带有永远不会消失的病毒警告消息的可疑网站 但我无法弄清楚这一点 我只是想过滤Results
  • Swift 3:将 UIButton 扩展添加到 ViewController

    我是 iOS Swift 的初学者 尝试创建一个没有 Storyboard 的简单应用程序 我创建了一个UIButton扩展名 我想在我的视图中添加一个简单的按钮 稍后将设置约束 不幸的是 该按钮不可见 如果有人帮助我 我将不胜感激 谢谢你
  • 从 SwiftUI 视图转至 UIViewController

    我正在努力将一些 SwiftUI 内容实现到我现有的应用程序中 我目前有一个 UIViewController 它托管一个用于相机预览的 MTKView 我创建了一个新的 SwiftUI 视图 它现在是我的root视图 如我的设置Scene
  • 如何在 swift 3 中发布原始数据?

    如果我使用 Postman 发布原始数据 就会收到响应 我正在使用这个代码 var dict Dictionary
  • Swift 和 Objective-C 框架公开其内部结构

    我正在尝试将 Swift 添加到具有公共 私有和项目文件的现有 Objective C 框架中 为了让 Swift 能够访问项目文件 我添加了一个定义新模块的模块映射 例如MyFramework Internal 通过包含所有项目标题 如下
  • iOS 应用程序中的谷歌地图实时交通状况?

    如何使用 google 地图 sdk 或 api 在 ios 应用程序中添加当前交通状况 如下图所示 有 javascript api 但我没有找到任何适用于 iOS 应用程序的解决方案 只需在 iOS SDK 中添加一行代码即可启用或禁用
  • iOS8中如何在UIAlertController中添加UITableview?

    Till iOS7 in Custom view we can put tableview in alert as per below picture But in iOS8 UITableview is not working I can
  • 使用 Swift 更改整个应用程序中的 UILabel 文本颜色

    在 Swift 中有什么方法可以在整个应用程序中立即更改 UILabel 的文本颜色属性吗 我尝试过使用外观属性 但这不适用于 UILabel textColor 任何方式或任何同样工作的库 一种方法是使用颜色设置 首先在您的 xcasse
  • 我如何知道 UITableView 何时完成 ReloadData?

    我试图在执行完成后滚动到 UITableView 的底部 self tableView reloadData 我原本有 self tableView reloadData NSIndexPath indexPath NSIndexPath
  • 使用捏合手势;如何放大用户手指实际“捏”的位置?

    我已经在我的应用程序中的 UIImageView 上实现了 UIPinchGestureRecognizer 但是无论我在图像的哪个位置捏合 它似乎都会放大到同一个位置 有谁知道我如何让它放大到用户实际 捏 的地方 请参阅下面的代码 视图控
  • 将 HTML 字符串加载到 UIWebView 中的延迟

    我在导航控制器中有两个视图控制器 第一个视图控制器有一个带有按钮的菜单 按下此按钮将移动到第二个视图控制器并将 html 字符串加载到 UIWebView 中 没有其他东西被加载到 webview 中 只是一个简单的 NSString 其中
  • 在 iPhone 和 Cocos2d 中从类类型(+)方法访问对象?

    我有一个类方法 在其中创建并返回类对象 但我想访问同一类中该对象的某些属性 作为一个类方法 我无法在 h 文件中声明该变量 然后在其他方法中访问它 以下是代码 我如何在下面的实例方法中访问 backsprite 或 hudlayer 对象的
  • 使用导航控制器在 Storyboard 中呈现视图控制器 - Swift

    我目前在下面的新故事板中显示了一个 viewController var storyboard UIStoryboard UIStoryboard name AccountStoryboard bundle nil var vc Welco
  • 连接到 Apple Music

    所以我尝试使用 React Native 应用程序从 iOS 设备连接到 Apple Music 有一个 API 可以执行相同的操作 但我需要从 storekit 框架调用一个函数 提出个性化请求 苹果音乐API https develop
  • Facebook 登录 Apple CNA

    问题 是否可以设置 Facebook 登录以在 CNA 中使用 是否为开发人员提供 CNA 文档 您可以使用任何开发人员工具调试 CNA 屏幕吗 Details 我创建了一个使用电子邮件提交表单或 Facebook 登录按钮的强制门户登录页
  • 子视图控制器旋转方法未被调用

    Summary 我试图将子视图控制器添加到父视图控制器 并让父视图控制器通知子视图控制器旋转事件 但是 旋转消息不会转发到子视图控制器 这是默认行为 为什么这种默认行为没有发生 环境 iOS 7 XCode 5 OSX 10 9 Detai
  • SDWebImage 显示缓存中图像的占位符

    在 iOS 5 1 项目 iPad 中使用 SDWebImage 3 我们展示相当大的图像 700x500 并且我们有很多图像 1000 我们预取图像并缓存到磁盘 然后允许用户浏览它们 效果很好 除了当您浏览图像时 您总是会看到占位符显示一
  • 带约束的 Swift 动画

    是否可以通过改变约束来制作 UIView 动画 基本上 我想要动画myv UIView 具有 x y 高度和宽度约束 使用 UIView animateWithDuration 1 5 通过改变旧的限制 是的 这是可能的 你可以这样做 fu
  • UINavigationController 在后退按钮单击时向下滚动

    我正在开发一个带有多个导航控制器的 iPhone iPad 应用程序 当我在设备处于横向模式时单击视图的后退按钮时 前一个视图会垂直滚动到屏幕中 而不是像往常一样水平滚动 推送动画始终水平工作 正如它应该的那样 是什么导致了这个奇怪的问题

随机推荐

  • Nestjs同时设置http和https服务器

    我正在尝试设置 http 和 https 服务器 咨询了官方文件 https docs nestjs com faq multiple servers nest i System Information OS Version Windows
  • 可从同一类的另一个实例访问私有字段[重复]

    这个问题在这里已经有答案了 我没有得到以下信息 我一直认为我只能从声明该字段的类访问私有字段 但是在这种情况下我可以访问它 class Session List
  • 子类化用户控制的 GridView

    我正在尝试对位于 UserControl 中的 GridView 进行子类化 因此 我希望能够在单独的页面中处理事件 基本上我的代码如下 我的带有 GridView 的 UserControl div div
  • 二分查找,从 java 到 Actionscript

    我正在尝试将以下 java 二进制搜索例程转换为 as3 我假设 compareTo 是内置的java方法 而 gt gt gt 是一种按位运算 任何熟悉 ActionScript 3 和 Java 的人都可以帮忙解决这个问题吗 packa
  • Excel 单元格值被 OLEDB 提供程序截断

    我正在使用 OleDbConnection 类从 Excel 2000 2003 工作簿检索数据 string connectionString Provider Microsoft Jet OLEDB 4 0 Data Source fi
  • 为什么垂直滚动条会自动移动?

    例如 我不明白为什么当单击 Line 9 时垂直滚动条会自动移动到最顶部位置 进一步单击不会移动滚动条 谁能解释为什么以及如何解决这个问题 我使用 Firefox 3 6 3 HTML div div
  • Fortran 中对多个矩阵进行加权和求和的最有效方法

    我正在尝试用 Fortran 编写一个函数 将多个具有不同权重的矩阵相乘 然后将它们加在一起形成一个矩阵 我已经确定这个过程是我的程序的瓶颈 这个权重将被many程序单次运行的时间 具有不同的权重 现在我正试图通过从 Matlab 切换到
  • 找不到项目文件

    我有一个现有的 TFS 项目 其结构与此类似 我在框架目录中创建了一个包含 2 个项目的解决方案 然后 我将 Cerberus 和 Cerberus Mvc 作为现有项目添加到 OnFaitQuoi 解决方案中 请注意 之前已签入 cerb
  • SSH.NET 从 ShellStream 检索输出

    我是 SSH NET 的新手 我正在我目前正在进行的一个项目中使用它 我必须使用 SSH NET 运行 sudo 命令 这就是我使用 ShellStream 运行该命令并为 sudo 命令提供身份验证的原因 现在我尝试运行 sudo 命令
  • 链接到完整的 div - html 和 css

    一些文字 sliderPart width 25 height 100 sliderPart a display block position relative text decoration none height 100 font 1
  • 如何将 BIT2 类型链接到变量?

    In most input cardsBeckhoff 有两个变量 Limit 1 and limit 2 他们有个BIT2datatype 大小为0 2字节 即有两位 如下图所示Limit 1 Bit0 Value smaller equ
  • 如何使用 python 在 Tensorboard 上显示模型的权重和偏差

    我创建了以下模型进行训练 并希望在 Tensorboard 上将其可视化 Basic Cell LSTM tensorflow index in epoch 0 perm array np arange x train shape 0 np
  • 正则表达式在页面上查找两个单词

    我试图找到包含单词 text1 和 text2 的所有页面 我的正则表达式 text1 n text2 it doesn t work 如果您的 IDE 支持s 单线 标志 所以 字符可以匹配换行符 您可以使用以下方式搜索您的项目 text
  • 在VBA中逐像素扫描图像

    这里有一个近乎精确的问题读取图像的像素颜色 https stackoverflow com questions 16528319 read pixel colors of an image 实际上 Op 提出的问题与我所问的问题相同 但接受
  • Android - 用于语音识别的外部 MIC

    我需要知道将麦克风或耳机连接到设备时会触发哪个事件 并且我正在使用语音识别 并且观察到它不会遵循与设备未连接任何设备时相同的流程 我想知道是否有某种解决方案 因为我目前正在创建的应用程序是在智能手机中进行测试的 但将来需要连接麦克风或耳机
  • 使用 Moment,js 获取本月所有星期一日期

    有没有办法使用 moment js 库获取当月的所有星期一日期 我知道我可以通过以下方式得到月底 moment endOf month 但如何获取当前 任何月份的所有星期一日期 我不想要 javascript 默认日期库中的某些函数 请参考
  • 如何在功能组件中更改父组件的子状态组件

    我创建了一个倒计时器组件 我在这个组件附近有一个按钮 我希望当用户单击此按钮时重置计时器 为此我应该改变子状态 我找到了从孩子那里改变父母状态的解决方案 但我找不到解决方案 可以用ref解决吗 我的计时器组件是一个功能组件 React re
  • 同时验证两个字段

    我正在看这篇文档 清理和验证相互依赖的字段 https docs djangoproject com en stable ref forms validation cleaning and validating fields that de
  • 尝试加载 PDFTron Android 库时出错

    当尝试与 PDFTron 即 PDFNet Android SDK 集成时 我遇到了一个奇怪的错误 UnsatisfiedLinkError 无法加载 PDFNetC findLibrary 返回 null 预期为armv7a 发现cpu
  • UITableView:向上滑动时缩小选项卡栏和导航栏

    Scenario 我有一个应用程序 它使用标签栏控制器 屏幕底部 和导航控制器 屏幕顶部 UI 设计 在一个视图控制器上 我有一个 UITableView 其中包含用户将 向上滑动 以滚动表格以查看内容的内容 Need 很像雅虎 和 Ins