小码哥-斗鱼直播APP之加载数据动画
加载数据动画
动画效果
效果如下:
效果分析
- 在每个界面第一次请求数据时,会先展示一个请求数据的动画
- 多个界面都有该动画效果,因此需要抽取一个最基本的父控制器
- 在父控制器中添加显示动画View&UICollectionView的业务逻辑即可
- 进入界面,展示动画View,隐藏UICollectionView
- 请求到数据,隐藏动画View,展示UICollectionView
父控制器抽取
- 四个界面需要有一个共同的父类
- (之后做其他界面也会集成子该类)
- 创建BaseViewController
- 在控制器中添加用于展示动画的UIImageView
- 给UIImageView设置执行动画的图片,并且执行动画
- 因为其他界面用于展示内容的View
- 对外提供方法,当数据在家完成时,可以隐藏UIImageView&显示展示内容的View
- 代码分析<
- 代码如下:
class BaseViewController: UIViewController {
// MARK: 定义属性
var contentView : UIView?
// MARK: 懒加载属性
lazy var animImageView : UIImageView = { [unowned self] in
let imageView = UIImageView(image: UIImage(named: "img_loading_1"))
imageView.center = self.view.center
imageView.animationImages = [UIImage(named: "img_loading_1")!, UIImage(named: "img_loading_2")!]
imageView.animationRepeatCount = LONG_MAX
imageView.animationDuration = 0.3
imageView.autoresizingMask = [.flexibleBottomMargin, .flexibleTopMargin]
return imageView
}()
// MARK:- 系统回调
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
}
}
extension BaseViewController {
func setupUI() {
// 0.设置整个背景
view.backgroundColor = UIColor(r: 250, g: 250, b: 250)
// 1.添加animImageView
view.addSubview(animImageView)
// 2.执行动画
animImageView.startAnimating()
// 3.隐藏collectionView
contentView?.isHidden = true
}
func loadDataFinished() {
animImageView.stopAnimating()
animImageView.isHidden = true
contentView?.isHidden = false
}
}
小码哥-斗鱼直播APP之加载数据动画相关推荐
- 小码哥-斗鱼直播APP之内容简介
内容简介 趣玩界面展示 效果如下: 效果分析 其实该界面跟前面的推荐&娱乐非常相似 之前的两个界面抽取了父控制器,其实该控制器集成自之前抽取的控制器即可 加载数据动画 效果如下: 效果分析 多 ...
- 小码哥-斗鱼直播APP之游戏界面实现
游戏界面实现 界面效果展示 界面效果 界面分析 分析图 如何实现 这个界面实现的方案很多 可以直接使用UITableView,之后添加一个HeaderView 可以直接使用UICollectionVi ...
- 小码哥-斗鱼直播APP之娱乐菜单展示
娱乐菜单展示 效果展示 如图 思路分析 该界面其实非常常见,像微信聊天中就有类似的界面 该界面如何布局呢? 思路一:UIScrollView 整体是一个UIScrollView 在UIScrollVi ...
- 小码哥-斗鱼直播APP之娱乐基本展示
娱乐基本展示 效果展示 如图 ! 内容的展示 界面布局 内容的展示依然是一个UICollectionView 懒加载UICollectionView 将UICollectionView添加到控制器的V ...
- 小码哥-斗鱼直播APP之弹出房间界面
弹出房间界面 功能说明 区分弹出秀场&普通房间 如果用户是秀场直播,那么弹出秀场房间界面 如果用户是电脑直播,那么弹出普通房间界面 秀场界面弹出 直接以Model方式,从底部弹出即可 普通界面 ...
- 小码哥-斗鱼直播APP之Swift3.0适配
Swift3.0适配 Swift3.0介绍 目前苹果已经发布了正式版的Xcode8.0&Swift3.0 在之后的开发中,我们会直接使用最新版本的Xcode&Swift版本 Swift ...
- 微信小程序开发之scroll-view上拉加载数据实现
微信小程序开发之scroll-view上拉加载数据实现 一.开发思路 1.使用小程序的scroll-view组件中提供了一个bindscrolltolower属性监听组件的滑动到了底部 https:/ ...
- 第十九篇玩转【斗鱼直播APP】系列之内容简介
内容简介 趣玩界面展示 效果如下: 效果分析 其实该界面跟前面的推荐&娱乐非常相似 之前的两个界面抽取了父控制器,其实该控制器集成自之前抽取的控制器即可 加载数据动画 效果如下: 效果分析 多 ...
- 小码哥iOS--玩转【斗鱼直播APP】系列之直播总体概览
直播总体概览 概述 直播的现状 2016年,是一个直播年.直播行业快速发展,同时也滋生了大大小小上千家相关的公司. 中国互联网络信息中心发布的报告显示,截至今年6月,我国网络直播用户规模达到3.25亿 ...
最新文章
- matlab imnoise 用法,怎样使在matlab用imnoise函数啊 对图像有什么要求才能用imnoise函数...
- MongoDB创建索引
- Python,yyds!
- Influxdb修改数据保留策略
- Taro 多端项目实践笔记
- Element UI table组件源码分析
- 英特尔预计第12代酷睿H系列处理器将有超过100款设备采用
- 【Notepad】Notepad++常用快捷键总结
- 网线制作ppt_制作网线图解ppt课件
- 数据结构遍历顺序栈_[C++]数据结构:栈之顺序栈
- 什么是SRE?SRE需要具备什么能力?
- 如何去掉百度地图logo
- java 矩阵求逆_详解用java描述矩阵求逆的算法
- iGuard简单突破
- 浅谈WMS系统(SAP WMS系统及非SAP的WMS系统)
- 环境变量的作用,为什么要要设置环境变量PATH
- Spring Cloud Gateway 3.1.3最新版中文手册官网2022
- Spring(3)--Spring示例再演示
- 【CodeForces 597A Divisibility】
- wincc脚本打印斑马打印机条码,斑马打印机接口