最近要接手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的文件 和代碼行數