zoukankan      html  css  js  c++  java
  • 【一】Swift 3.0 新浪微博项目实战 -整体框架搭建

    最近要接手swift项目,所以找了个视频跟着做一下实战项目,在此记录一下过程和心得


    第一天的 源码点这里

    框架搭建和目录拆分

    关键词:MVVM 架构,桥接文件

    • 桥接文件
      用于引入OC的头文件,Swift就可以正常使用(宏除外)。项目内桥接文件( weibo-Bridge.h)


    设置Tabbar样式 ,通过字典添加子控制器

    关键词:guard let ,lazy 懒加载, extension,溢出TabbarItem的处理,@objc private 

    • guard let
      在读取字典属性的时候,避免空值
      相对于if let的使用,避免过多的嵌套,写法更加简洁方便
    • 比较多的像新浪微博这种,底部Tabbar都会有一个比较独特的按钮。有些APP底部按钮有溢出底部栏的情况。 这个时候设置多一个tabbarItem,用一个按钮覆盖多出来的item, 达到效果。 在有超过底部栏的情况可以设置tabbar.bounds.insets 来解决
      注意一个像素点的按钮容错

    • @objc
      看到objc应该能发现这是和oc有关
      一般在添加按钮的点击方法的时候都是设置 private 保证方法私有,但是直接用private编译不通过
      通过@objc,允许这个函数在运行时通过OC的消息机制被调用, 所有及时被私有了,在运行时依然能调用到

    • extension
      类似OC中的分类

    重写push方法,隐藏底部tabBar

    关键词: override  , super ,栈底控制器

    • 重写 BaseVC的push方法。 判断值为子控制器个数

    抽取barButtonItem 便利构造函数

    关键词: convenience 便利构造函数 , as? 

    • as?vc.type 用来判断是否某种类型

    自定义navBar

    关键词: didset

    • didset 重写属性的set方法
    • 系统导航条在pop的时候有融合的情况,需要移除,自定义navBar.添加字体高亮,自定义返回样式


    最后

    find . -name "*.swift" | xargs wc -l

    可以看到今天做的swift的文件 和代码行数

     

  • 相关阅读:
    《DSP using MATLAB》Problem 6.17
    一些老物件
    《DSP using MATLAB》Problem 6.16
    《DSP using MATLAB》Problem 6.15
    《DSP using MATLAB》Problem 6.14
    《DSP using MATLAB》Problem 6.13
    《DSP using MATLAB》Problem 6.12
    《DSP using MATLAB》Problem 6.11
    P1414 又是毕业季II
    Trie树
  • 原文地址:https://www.cnblogs.com/L-vincen/p/6613057.html
Copyright © 2011-2022 走看看