• 为什么要模仿斗鱼?

    • 直播越来越火,人们越来越喜欢秀场与游戏直播,而斗鱼囊括了秀场和游戏直播,并且是当下最火的直播平台。
    • 斗鱼的界面多样化,功能上也包括了“秀场”、“游戏直播”、“即时聊天”、“送礼物”、“弹幕”等等热门技术,很值得研究。
  • 为什么要使用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. 首页技术

    1. 1 原控件的扩展-->首页右上角搜索按钮、扫一扫按钮

      1. 创建一个Swift File 空文件,作为UIBarButtonItem的扩展文件,代码如下:​​​​​​
    2. 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的封装

      1. 分为titleView和contentView两部分封装。

        • TitleView:待续

转载于:https://my.oschina.net/yuluZhang/blog/777545

Swift3.0知识点:高度模仿斗鱼TV(一)相关推荐

  1. Swift3.0 键盘高度监听获取

    方法:通过通知监听键盘的动态 1.键盘的动态有四种: public static let UIKeyboardWillShow: NSNotification.Namepublic static le ...

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

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

  3. Swift3.0 功能二 (表情键盘与图文混排)

    随着iOS越来越多表情键盘以及图文混排的需求,本文运用Swift3.0系统的实现其功能以及封装调用方法,写的不好,如有错误望各位提出宝贵意见,多谢 项目源码地址: 相关知识点都有标识 项目源码地址 废 ...

  4. 高仿斗鱼TV直播APP源码推荐

    菜鸟窝官网实战课程文章编辑招募中,如有兴趣加入可免费学习实战课程,联系方式:添加菜鸟君微信:keely-jzx 高仿斗鱼TV项目, 项目架构采用MVP模式,使用Retorfit2.0+RxJava1. ...

  5. python爬虫:使用selenium、unittest和BeautifulSoup爬取斗鱼tv的当前直播人数

    import unittest from selenium import webdriver from bs4 import BeautifulSoup as bsclass douyu(unitte ...

  6. DOM 案例——(美团外卖下拉框菜单、半透明——信息滑入、模态窗口拖拽效果、放大镜效果、滚动条滑到一定位置的固定导航栏、12306购票网站多级联动、斗鱼TV无规则弹幕特效、百度搜索条动态输入下拉瀑布)

    目录 1.缓动动画--美团外卖下拉框菜单 2.半透明--信息滑入 3.模态窗口拖拽效果 4.放大镜效果 5.滚动条滑到一定位置的固定导航栏 6.12306购票网站多级联动 7.斗鱼TV无规则弹幕特效 ...

  7. swift3.0友盟分享

    经过(一)的讲解,大家应该可以按照友盟提供的测试账号可以集成友盟分享了,友盟目前集合了18个APP共27种分享,可以授权的有10个App:微信.QQ.新浪微博.腾讯微博.人人网.豆瓣.Facebook ...

  8. swift3.0阿里百川反馈

    闲言少叙  直接上不熟 1.导入自己工程阿里百川demo中的Util文件,并引用其中的头文件 2.剩余就是swift3.0代码.在自己需要的地方书写 (前提是你已经申请了APPKey) 3.代码 // ...

  9. Swift3.0带来的变化汇总系列一——字符串与基本运算符中的变化

    var string = "Hello-Swift" //获取某个下标后一个下标对应的字符 char="e" //swift2.2 //var char = s ...

  10. Swift3.0带来的变化汇总

    var string = "Hello-Swift" //获取某个下标后一个下标对应的字符 char="e" //swift2.2 //var char = s ...

最新文章

  1. [译]Vulkan教程(04)基础代码
  2. Comet oj比赛组队
  3. 华硕笔记本,宽带连上,可以上网, 但收到不无线
  4. ai驱动数据安全治理_AI驱动的Web数据收集解决方案的新起点
  5. cario java_Cairo图形库 概述
  6. MySQL系列详解六:MySQL主从复制/半同步演示-技术流ken
  7. centos7.6(腾讯云)开放端口及配置腾讯云安全组
  8. 如何遍历JTree的每一个节点
  9. oracle between 和大于小于性能_2.oracle伪例+序列
  10. Leetcode. 14. Longest Common Prefix
  11. csdn官网(csdn官网免费下载)
  12. 360安全浏览器强制使用极速模式打开
  13. (C语言)2048游戏实现
  14. 笔记本电脑重装win10系统图文并茂详细操作教程(微PE工具箱重装系统)
  15. 【循环搜寻法(使用卫兵)】
  16. Python——类和实例
  17. Linux 之软连接
  18. yum命令报错:Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cache
  19. 从CSDN到个人博客空间
  20. 翻翻git之---史上最强的图片选择器 GalleryFinal(顺带附下麦麦,当当的近照)

热门文章

  1. 转录组入门(4):了解参考基因组及基因注释
  2. windows桌面待办事项_苹果iPhone手机上有什么好用的管理待办事项的桌面便签软件吗?...
  3. NPN、PNP型三极管的常见问题
  4. 蛇形填数(语言:C语言)
  5. Ubuntu18.04安装carla0.9.9 UE4.24踩坑版
  6. linux查询数据库归档日志,关于 Oracle 归档日志
  7. Amazon 亚马逊 AWS S3 跨源资源共享 (CORS)设置
  8. elasticsearch nested嵌套查询
  9. How-to: 利用Web Camera模拟Windows Phone 7的重力加速度传感器
  10. 开发一个App大概要多少钱?只讲干货