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. 首页技术
    1. 1 原控件的扩展-->首页右上角搜索按钮、扫一扫按钮
      1. 创建一个Swift File 空文件,作为UIBarButtonItem的扩展文件,代码如下:​​​​​​
    2. extension UIBarButtonItem {
      
          convenience init(imageName: String,hightImageName : String = "",size : CGSize = CGSize.zero) {
      
              // 1.创建UIButton
              let 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.创建UIBarButtonItem
              self.init(customView : btn)
      
          }
      
      }

      格式:extension : 扩展对象 convenience init() 重写构造函数,默认参数写法 : 字符串 = "" ,默认参数的好处:如果不需要这个参数则可以不填写,让方法更简洁、灵活。例如以上代码如果你不需要高亮图片,也不需要size,那么直接这样调用:

      navigationItem.leftBarButtonItem = UIBarButtonItem(imageName: "logo")

      2.pageController的封装

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

        • TitleView:待续

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...