加载数据动画

动画效果

  • 效果如下:

  • 效果分析

    • 在每个界面第一次请求数据时,会先展示一个请求数据的动画
    • 多个界面都有该动画效果,因此需要抽取一个最基本的父控制器
    • 在父控制器中添加显示动画View&UICollectionView的业务逻辑即可
      • 进入界面,展示动画View,隐藏UICollectionView
      • 请求到数据,隐藏动画View,展示UICollectionView

父控制器抽取

  • 四个界面需要有一个共同的父类

    • (之后做其他界面也会集成子该类)
  • 创建BaseViewController
    • 在控制器中添加用于展示动画的UIImageView
    • 给UIImageView设置执行动画的图片,并且执行动画
    • 因为其他界面用于展示内容的View
    • 对外提供方法,当数据在家完成时,可以隐藏UIImageView&显示展示内容的View
  • 代码分析<
  • 代码如下:
 
  1. class BaseViewController: UIViewController {
  2. // MARK: 定义属性
  3. var contentView : UIView?
  4. // MARK: 懒加载属性
  5. lazy var animImageView : UIImageView = { [unowned self] in
  6. let imageView = UIImageView(image: UIImage(named: "img_loading_1"))
  7. imageView.center = self.view.center
  8. imageView.animationImages = [UIImage(named: "img_loading_1")!, UIImage(named: "img_loading_2")!]
  9. imageView.animationRepeatCount = LONG_MAX
  10. imageView.animationDuration = 0.3
  11. imageView.autoresizingMask = [.flexibleBottomMargin, .flexibleTopMargin]
  12. return imageView
  13. }()
  14. // MARK:- 系统回调
  15. override func viewDidLoad() {
  16. super.viewDidLoad()
  17. setupUI()
  18. }
  19. }
  20. extension BaseViewController {
  21. func setupUI() {
  22. // 0.设置整个背景
  23. view.backgroundColor = UIColor(r: 250, g: 250, b: 250)
  24. // 1.添加animImageView
  25. view.addSubview(animImageView)
  26. // 2.执行动画
  27. animImageView.startAnimating()
  28. // 3.隐藏collectionView
  29. contentView?.isHidden = true
  30. }
  31. func loadDataFinished() {
  32. animImageView.stopAnimating()
  33. animImageView.isHidden = true
  34. contentView?.isHidden = false
  35. }
  36. }

小码哥-斗鱼直播APP之加载数据动画相关推荐

  1. 小码哥-斗鱼直播APP之内容简介

    内容简介 趣玩界面展示 效果如下: 效果分析 其实该界面跟前面的推荐&娱乐非常相似 之前的两个界面抽取了父控制器,其实该控制器集成自之前抽取的控制器即可 加载数据动画 效果如下: 效果分析 多 ...

  2. 小码哥-斗鱼直播APP之游戏界面实现

    游戏界面实现 界面效果展示 界面效果 界面分析 分析图 如何实现 这个界面实现的方案很多 可以直接使用UITableView,之后添加一个HeaderView 可以直接使用UICollectionVi ...

  3. 小码哥-斗鱼直播APP之娱乐菜单展示

    娱乐菜单展示 效果展示 如图 思路分析 该界面其实非常常见,像微信聊天中就有类似的界面 该界面如何布局呢? 思路一:UIScrollView 整体是一个UIScrollView 在UIScrollVi ...

  4. 小码哥-斗鱼直播APP之娱乐基本展示

    娱乐基本展示 效果展示 如图 ! 内容的展示 界面布局 内容的展示依然是一个UICollectionView 懒加载UICollectionView 将UICollectionView添加到控制器的V ...

  5. 小码哥-斗鱼直播APP之弹出房间界面

    弹出房间界面 功能说明 区分弹出秀场&普通房间 如果用户是秀场直播,那么弹出秀场房间界面 如果用户是电脑直播,那么弹出普通房间界面 秀场界面弹出 直接以Model方式,从底部弹出即可 普通界面 ...

  6. 小码哥-斗鱼直播APP之Swift3.0适配

    Swift3.0适配 Swift3.0介绍 目前苹果已经发布了正式版的Xcode8.0&Swift3.0 在之后的开发中,我们会直接使用最新版本的Xcode&Swift版本 Swift ...

  7. 微信小程序开发之scroll-view上拉加载数据实现

    微信小程序开发之scroll-view上拉加载数据实现 一.开发思路 1.使用小程序的scroll-view组件中提供了一个bindscrolltolower属性监听组件的滑动到了底部 https:/ ...

  8. 第十九篇玩转【斗鱼直播APP】系列之内容简介

    内容简介 趣玩界面展示 效果如下: 效果分析 其实该界面跟前面的推荐&娱乐非常相似 之前的两个界面抽取了父控制器,其实该控制器集成自之前抽取的控制器即可 加载数据动画 效果如下: 效果分析 多 ...

  9. 小码哥iOS--玩转【斗鱼直播APP】系列之直播总体概览

    直播总体概览 概述 直播的现状 2016年,是一个直播年.直播行业快速发展,同时也滋生了大大小小上千家相关的公司. 中国互联网络信息中心发布的报告显示,截至今年6月,我国网络直播用户规模达到3.25亿 ...

最新文章

  1. matlab imnoise 用法,怎样使在matlab用imnoise函数啊 对图像有什么要求才能用imnoise函数...
  2. MongoDB创建索引
  3. Python,yyds!
  4. Influxdb修改数据保留策略
  5. Taro 多端项目实践笔记
  6. Element UI table组件源码分析
  7. 英特尔预计第12代酷睿H系列处理器将有超过100款设备采用
  8. 【Notepad】Notepad++常用快捷键总结
  9. 网线制作ppt_制作网线图解ppt课件
  10. 数据结构遍历顺序栈_[C++]数据结构:栈之顺序栈
  11. 什么是SRE?SRE需要具备什么能力?
  12. 如何去掉百度地图logo
  13. java 矩阵求逆_详解用java描述矩阵求逆的算法
  14. iGuard简单突破
  15. 浅谈WMS系统(SAP WMS系统及非SAP的WMS系统)
  16. 环境变量的作用,为什么要要设置环境变量PATH
  17. Spring Cloud Gateway 3.1.3最新版中文手册官网2022
  18. Spring(3)--Spring示例再演示
  19. 【CodeForces 597A Divisibility】
  20. wincc脚本打印斑马打印机条码,斑马打印机接口

热门文章

  1. 多台个人电脑间的数据同步
  2. 《集结号》与戴镣铐跳舞的冯小刚
  3. Springboot与微服务翻译
  4. windows10 cmd命令行添加php环境变量无效问题解决
  5. 矩阵的秩:行秩等于列秩
  6. 实时面具覆盖人脸小程序
  7. Android Transition过渡动画
  8. 如何用内卷搞垮一个团队?
  9. react ant table删除后数据更新视图不更新
  10. steam数据模型简易记录