现在好多应用的首页都要求状态栏和tabbar支持滑动隐藏,直播平台源码又怎能甘心落后于人呢?对于此类需求,我们可以使用UICollectionView来进行功能实现,UICollectionView 的功能非常强大,利用它可以做出非常优美流畅的首页动画。
接下来就是制作滑动隐藏状态栏和tabbar的具体步骤。
1、创建UICollectionView

UICollectionViewFlowLayout *flow = [[UICollectionViewFlowLayout alloc]init];flow.scrollDirection = UICollectionViewScrollDirectionVertical;flow.itemSize = CGSizeMake(_window_width/2-4.5, (_window_width/2-4.5) * 1.5);flow.minimumLineSpacing = 3;flow.minimumInteritemSpacing = 3;flow.sectionInset = UIEdgeInsetsMake(3, 3,3, 3);flow.headerReferenceSize = CGSizeMake(_window_width, 95);
//创建UICollectionView并设置frame,注意要是0,0,屏幕宽,屏幕高_collectionView = [[UICollectionView alloc]initWithFrame:CGRectMake(0,0, _window_width, _window_height) collectionViewLayout:flow];_collectionView.delegate   = self;_collectionView.dataSource = self;
[self.view addSubview:_collectionView];
//注册XIBcell
[self.collectionView registerNib:[UINib nibWithNibName:@"HotCollectionViewCell" bundle:nil] forCellWithReuseIdentifier:@"HotCollectionViewCELL"];
//注册UICollectionview的头视图[self.collectionView registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"hotHeaderV"];if (@available(iOS 11.0, *)) {_collectionView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;} else {// Fallback on earlier versionsself.automaticallyAdjustsScrollViewInsets = NO;}
_collectionView.backgroundColor = [UIColor whiteColor];
//设置UIcollectionView的偏移量 : 导航栏高度+IPhoneX的状态栏高度_collectionView.contentInset = UIEdgeInsetsMake(64+statusbarHeight, 0, 0, 0);

具体的UICollectionView代理方法我就不写了,网上有很多相关教程
2、在UIScrollView的滑动代理方法中计算滑动的位置,来判断显示隐藏

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {//记录滑动的位置oldOffset = scrollView.contentOffset.y;
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
if (scrollView.contentOffset.y > oldOffset) {
//向上滑隐藏if (scrollView.contentOffset.y > 0) {//这个pageview是我用的分页控制器,可以换成自己的navi_pageView.hidden = YES;[self hideTabBar];}
}else{
//向下滑显示_pageView.hidden = NO;[self showTabBar];}
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {NSLog(@"%f",oldOffset);
}
#pragma mark ================ 隐藏和显示tabbar ===============
- (void)hideTabBar {if (self.tabBarController.tabBar.hidden == YES) {return;}self.tabBarController.tabBar.hidden = YES;ZYTabBar *tabbar = (ZYTabBar *)self.tabBarController.tabBar;tabbar.plusBtn.hidden = YES;
}
- (void)showTabBar
{if (self.tabBarController.tabBar.hidden == NO){return;}self.tabBarController.tabBar.hidden = NO;ZYTabBar *tabbar = (ZYTabBar *)self.tabBarController.tabBar;tabbar.plusBtn.hidden = NO;
}

完成上述步骤后即可在直播平台源码中实现首页导航栏向上滑动隐藏和tabbar以及向下滑展示导航栏和tabbar了,以后还会有更多与直播源码相关的干货文章会在我的CSDN中持续放出,敬请期待。
声明:文章声明原创,转载请注明出处及作者。

直播平台源码实现状态栏滑动隐藏和tabbar的教程相关推荐

  1. H5 直播的疯狂点赞动画如何通过php直播平台源码实现(附完整源码)

    php直播平台源码H5 直播的疯狂点赞动画如何通过php直播平台源码实现(附完整源码) 直播有一个很重要的互动:点赞. 为了烘托直播间的氛围,直播相对于普通视频或者文本内容,点赞通常有两个特殊需求: ...

  2. 直播平台源码中的推拉流是什么

    关于直播平台源码中的推流和拉流,最常用的就是RTMP和RTSP协议了 推流,指的是把采集阶段封包好的内容传输到服务器的过程,推流是直播端需要完成的步骤.拉流是指服务器已有直播内容,用指定地址进行拉取的 ...

  3. 直播系统开发,直播平台源码切忌一成不变

    直播过程中流媒体协议的传输大致包含六个环节,分别是采集.预处理.编码.传输.解码.播放等环节,这六个环节的前五个环节都是需要开发者费心的. 直播系统开发时,会在直播平台中内置分类列表,每个直播平台也都 ...

  4. 直播平台源码搭建教程之Android音视频开发

    直播平台源码搭建教程之Android音视频开发 音频 将声音保存成音频的过程,其实就是将模拟音频数字化的过程,为了实现这个过程,就需要对模拟音频进行采样.量化和编码.接下来我们详细讲解这一过程. 采样 ...

  5. 基于Java毕业设计在线直播平台源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计在线直播平台源码+系统+mysql+lw文档+部署软件 基于Java毕业设计在线直播平台源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 开发语言: ...

  6. 直播平台开发时iOS 开发内购功能,直播平台源码搭建

    1.首先登录苹果账号,在直播平台源码搭建完成好后,进入后台管理中心添加商品,选择功能----App内购买项目------添加商品类型.商品的ID.以及说明信息. 2.在直播平台源码搭建后台创建沙盒测试 ...

  7. 搭建直播平台源码用到的云技术到底是什么

    现在在搭建直播平台源码时经常会听到云技术这个词,云技术到底是什么?很多第一次听到的人都会有这个困扰,简单说,云技术就是将局域网或广域网内的硬件.软件和网络等一系列资源统一整合起来,通过托管对数据的计算 ...

  8. 手把手带你快速实现直播平台源码聊天室

    工具要求: (1) Android Studio 3.2或更高版本. (2) SDK targetVersion至少为26. 本文直播平台源码聊天室是集成环信IM SDK实现聊天功能,及实现发送礼物. ...

  9. 直播平台源码搭建教程盘点直播技术中的编解码、直播协议、网络传输与简单实现

    直播平台源码搭建教程盘点直播技术中的编解码.直播协议.网络传输与简单实现 Live CheatSheet | 直播技术理论基础与实践概论 音视频直播的基本流程都是采集 → 编码推流 → 网络分发 → ...

最新文章

  1. 随机访问类(RandomAccessFile)
  2. 奠定现代计算机发展的人物和思想,计算机基础第一部分.ppt
  3. 前音悦台直播互动产品总监金鹏:直播产品需要注意这些问题
  4. 企业核心员工的长期激励计划
  5. java哈希_Java Hashtable 类
  6. 如何利用pandas将时间戳格式化日期字符串呢?
  7. 内网通mac能用吗_Mac「随航」除了可以当Mac显示屏,还可以这样用
  8. 软件测试——测试流程重要性
  9. Android 中的hook技术是什么
  10. MATLAB命令大全
  11. Cluster-level pseudo-labelling forsource-free cross-domain facial expressionrecognition
  12. git push报错 protocol error: bad line length character: Acti
  13. 安卓虚拟摄像头_华为Mate 40 Pro爆料,后置摄像头类似苹果iPod
  14. Cortex、ARMv8、arm架构、ARM指令集、soc?Cortex A8、A9都是ARMv7a 架构;Cortex M3、M4是ARMv7m架构;前者是处理器(内核)后者是指令集的架构(架构)
  15. 碧桂园出品的机器人,能够代替公司人力吗?
  16. 曼德布洛特(Mandelbrot)集合
  17. 【认识硬件】之 锁紧座
  18. GitHub疯狂转发!阿里巴巴彩版java性能调优实战,终于到手了!文末福利
  19. Android技术功底不够如何去面试,复习指南
  20. GreenPlum 介绍

热门文章

  1. CorelDRAW插件-GMS开发-VBA注册-机器码-CDR(八)
  2. 如何查看本机IP地址(ipconfig命令)
  3. SMBMS(超市订单管理系统)
  4. 操作系统实验(linux内核编译,添加系统调用,windows进程创建,脚本程序编写)
  5. colaboratory报错:CUDA status Error: file: ./src/blas_kernels.cu : ()
  6. Microsoft Teams快速上手系列-07Teams中的组织架构
  7. C语言如何实现任意数相乘
  8. WIN10怎么让自己桌面看起来好看一点
  9. 企业网管常见问题解决集合
  10. requirejs html缓存问题,requirejs 缓存问题