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

前端之家收集整理的这篇文章主要介绍了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:待续

猜你在找的Swift相关文章