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的文件 和代码行数

     

  • 相关阅读:
    awk语法
    Linux 统计某个字符串出现的次数
    Linux 输出文件列数,拼接文件
    Linux之date
    C变量类型和作用域
    Java垃圾回收机制
    python 字符编码问题
    Linux文件和windows文件在 换行符的区别
    不要在 foreach 循环里进行元素的 remove/add 操作。remove 元素请使用 Iterator 方式,如果并发操作,需要对 Iterator 对象加锁
    Iterator和ListIterator
  • 原文地址:https://www.cnblogs.com/L-vincen/p/6613057.html
Copyright © 2011-2022 走看看