標籤:
好久沒有寫筆記了。這二十天好忙啊,項目要發布,沒有太多的時間看iOS了。
現在已經把Stanford的教程學完了,但是感覺很尷尬。其實看代碼的時候,感覺沒一個Demo都沒有什麼東西,但是看Demo看時似是而非的看不懂。視頻裡面,教授用每個API都是信手拈來,但是自己去寫,課後看代碼的時候,就不是那麼回事了。不同的地方改用什麼對象,UILable還是UIButton?這個對象都有什麼API?這些其實都不知道。而要成為熟練的iOS開發人員,這些其實是非常非常重要的。
翻了之前的幾遍筆記主要是寫了API的使用,其實沒什麼用,因為這些東西不用還是忘,關鍵是常用。書很多,不會的時候翻翻書上的Demo,光知道貼到Blog上對我的技術提升還是沒有什麼協助。
去掉API之外,具體主要是iOS的設計的特點以及Swift的使用特點,稍微總結羅列幾條:
- 屬性觀察器willset & didset(lazy屬性不行,如果計算屬性不是重載的,用屬性觀察器也沒有意義,因為有setter),計算屬性的setter & getter,唯讀計算屬性沒有settter。
- 對於在viewDidLoad這些函數中調用的函數,屬性觀察器裡面調用的函數,一定要記得被調用函數裡面的變數是不是已經初始化好了,如果沒有初始化,那就crash了。
- extend一個特定的類A,並且把這個類設為B中private的,這樣只有B中訪問類A可以放的時候,具有extended的屬性
- 這種初始化方式要好好利用哦。()是讓閉包立即執行的,而不是把閉包賦值給animator
lazy var animator: UIDynamicAnimator = { let lazilyCreatedDynamicAnimator = UIDynamicAnimator(referenceView: self.gameView) lazilyCreatedDynamicAnimator.delegate = self return lazilyCreatedDynamicAnimator }()
第11節到第17節的主要內容有:
- Unwind Segues (這個其實沒有Demo,也沒有詳細講。現在我還是糊裡糊塗的,以後要重點補上這個。
- Alert,就是View中間輸入密碼啊,提示確認取消啊,或者從View底部彈出(iPad是在左上方彈出,看Bar Button Item的設定)。這個很簡單,例化,設定,然後加到View,然後就行了。
- Timers,就是時間控制。值得注意的就是NSTimer被定義後,會自動執行的,你就不要想著調用函數什麼的了。
- Animations:就是動畫。這是個大坑啊,教授列了四種動畫,最後三種不會講。
- Animating UIView Properties
- Animation of View Controller transitions
- Core Animation
- Dynamic Animation
- Dynamic Animation:
- Create a UIDynamicAnimator
- Add UIDynamicBehaviors to it
- Add UIDynamicItems (Usually UIViews) to the UIDynamicBehaviors
- Application lifecycle, 主要就是一張有限狀態機器
- Core Motation
- Core location and Mapkit的使用
- Camera的使用,資料存放區,Embed segue
- 國際化
- 怎麼在設定裡面更改App的行為
- Notification
Stanford iOS Learn Notes - 8