Swift3.0知识点:高度模仿斗鱼TV(一)
- 为什么要模仿斗鱼?
- 直播越来越火,人们越来越喜欢秀场与游戏直播,而斗鱼囊括了秀场和游戏直播,并且是当下最火的直播平台。
- 斗鱼的界面多样化,功能上也包括了“秀场”、“游戏直播”、“即时聊天”、“送礼物”、“弹幕”等等热门技术,很值得研究。
- 为什么要使用Swift进行模仿?
- 苹果大力推广Swift,国外教学语言也已经完全使用Swift教学,这是未来的趋势。
- 今年语言排行榜上,Swift的使用量已经超过OC。
- Swift更快,更简洁,更安全,更优雅。
- 我技术很菜,如何开始?
- iOS大神why正在更新斗鱼的模仿教学,我也是抱着大腿走。
- 感谢why大神的教学!要上车的童鞋们赶紧了。
why大神的gitHub斗鱼源码:https://github.com/coderwhy/DouYuZB
- 本人gitHub斗鱼代码:https://github.com/Rain-dew/DouYuZhiBo
- 项目搭建:根控制器用TabViewController,每个自控制器嵌套导航,并且很多页面再嵌套pageViewController
- 首页技术
- 1 原控件的扩展-->首页右上角搜索按钮、扫一扫按钮
- 创建一个Swift File 空文件,作为UIBarButtonItem的扩展文件,代码如下:
extension UIBarButtonItem {convenience init(imageName: String, hightImageName : String = "", size : CGSize = CGSize.zero) {// 1.创建UIButtonlet btn = UIButton()// 2.设置btn的图片btn.setImage(UIImage(named: imageName), for: UIControlState())if hightImageName != "" {btn.setImage(UIImage(named: hightImageName), for: .highlighted)}// 3.设置btn的尺寸if size == CGSize.zero {btn.sizeToFit()} else {btn.frame = CGRect(origin: CGPoint.zero, size: size)}// 4.创建UIBarButtonItemself.init(customView : btn)}}
格式:extension : 扩展对象 convenience init() 重写构造函数,默认参数写法 : 字符串 = "" ,默认参数的好处:如果不需要这个参数则可以不填写,让方法更简洁、灵活。例如以上代码如果你不需要高亮图片,也不需要size,那么直接这样调用:
navigationItem.leftBarButtonItem = UIBarButtonItem(imageName: "logo")
2.pageController的封装
分为titleView和contentView两部分封装。
TitleView:待续
- 1 原控件的扩展-->首页右上角搜索按钮、扫一扫按钮
转载于:https://my.oschina.net/yuluZhang/blog/777545
Swift3.0知识点:高度模仿斗鱼TV(一)相关推荐
- Swift3.0 键盘高度监听获取
方法:通过通知监听键盘的动态 1.键盘的动态有四种: public static let UIKeyboardWillShow: NSNotification.Namepublic static le ...
- 小码哥-斗鱼直播APP之Swift3.0适配
Swift3.0适配 Swift3.0介绍 目前苹果已经发布了正式版的Xcode8.0&Swift3.0 在之后的开发中,我们会直接使用最新版本的Xcode&Swift版本 Swift ...
- Swift3.0 功能二 (表情键盘与图文混排)
随着iOS越来越多表情键盘以及图文混排的需求,本文运用Swift3.0系统的实现其功能以及封装调用方法,写的不好,如有错误望各位提出宝贵意见,多谢 项目源码地址: 相关知识点都有标识 项目源码地址 废 ...
- 高仿斗鱼TV直播APP源码推荐
菜鸟窝官网实战课程文章编辑招募中,如有兴趣加入可免费学习实战课程,联系方式:添加菜鸟君微信:keely-jzx 高仿斗鱼TV项目, 项目架构采用MVP模式,使用Retorfit2.0+RxJava1. ...
- python爬虫:使用selenium、unittest和BeautifulSoup爬取斗鱼tv的当前直播人数
import unittest from selenium import webdriver from bs4 import BeautifulSoup as bsclass douyu(unitte ...
- DOM 案例——(美团外卖下拉框菜单、半透明——信息滑入、模态窗口拖拽效果、放大镜效果、滚动条滑到一定位置的固定导航栏、12306购票网站多级联动、斗鱼TV无规则弹幕特效、百度搜索条动态输入下拉瀑布)
目录 1.缓动动画--美团外卖下拉框菜单 2.半透明--信息滑入 3.模态窗口拖拽效果 4.放大镜效果 5.滚动条滑到一定位置的固定导航栏 6.12306购票网站多级联动 7.斗鱼TV无规则弹幕特效 ...
- swift3.0友盟分享
经过(一)的讲解,大家应该可以按照友盟提供的测试账号可以集成友盟分享了,友盟目前集合了18个APP共27种分享,可以授权的有10个App:微信.QQ.新浪微博.腾讯微博.人人网.豆瓣.Facebook ...
- swift3.0阿里百川反馈
闲言少叙 直接上不熟 1.导入自己工程阿里百川demo中的Util文件,并引用其中的头文件 2.剩余就是swift3.0代码.在自己需要的地方书写 (前提是你已经申请了APPKey) 3.代码 // ...
- Swift3.0带来的变化汇总系列一——字符串与基本运算符中的变化
var string = "Hello-Swift" //获取某个下标后一个下标对应的字符 char="e" //swift2.2 //var char = s ...
- Swift3.0带来的变化汇总
var string = "Hello-Swift" //获取某个下标后一个下标对应的字符 char="e" //swift2.2 //var char = s ...
最新文章
- [译]Vulkan教程(04)基础代码
- Comet oj比赛组队
- 华硕笔记本,宽带连上,可以上网, 但收到不无线
- ai驱动数据安全治理_AI驱动的Web数据收集解决方案的新起点
- cario java_Cairo图形库 概述
- MySQL系列详解六:MySQL主从复制/半同步演示-技术流ken
- centos7.6(腾讯云)开放端口及配置腾讯云安全组
- 如何遍历JTree的每一个节点
- oracle between 和大于小于性能_2.oracle伪例+序列
- Leetcode. 14. Longest Common Prefix
- csdn官网(csdn官网免费下载)
- 360安全浏览器强制使用极速模式打开
- (C语言)2048游戏实现
- 笔记本电脑重装win10系统图文并茂详细操作教程(微PE工具箱重装系统)
- 【循环搜寻法(使用卫兵)】
- Python——类和实例
- Linux 之软连接
- yum命令报错:Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cache
- 从CSDN到个人博客空间
- 翻翻git之---史上最强的图片选择器 GalleryFinal(顺带附下麦麦,当当的近照)
热门文章
- 转录组入门(4):了解参考基因组及基因注释
- windows桌面待办事项_苹果iPhone手机上有什么好用的管理待办事项的桌面便签软件吗?...
- NPN、PNP型三极管的常见问题
- 蛇形填数(语言:C语言)
- Ubuntu18.04安装carla0.9.9 UE4.24踩坑版
- linux查询数据库归档日志,关于 Oracle 归档日志
- Amazon 亚马逊 AWS S3 跨源资源共享 (CORS)设置
- elasticsearch nested嵌套查询
- How-to: 利用Web Camera模拟Windows Phone 7的重力加速度传感器
- 开发一个App大概要多少钱?只讲干货