序言html
隨着 WWDC2019 Swift5.0
的發佈,基於ABI的穩定,Swift 好像要起飛了。以前一直在默默關注着 Swift,大多數聲音是 Swift 一年一個樣,如今不是學的時候,不過另外一個很奇怪的現象是大部分公司都開始使用 Swift,因此 Swift 的重要性對於 iOS 的重要性不言而喻。像我這樣抱着 OC 不放的人也大有人在,積極擁抱變化纔是王道。小程序
今天看到網上關於一篇文章 《100 Days of Swift》,國內已經有不少人寫過相似的文章了,30天學習編寫30個Swift小程序,自學 iOS - 三十天三十個 Swift 項目 ,正好能夠按照這個思路來學一下 Swift。swift
可能你會質疑有沒有必要重複寫一個文章呢?我以爲是有必要的,一方面是爲了監督本身學下去,另外一方面也能夠總結本身的心得和知識點收穫。之後我天天會更新一個例子,學習的例子主要參考以上文章,講一講在這個例子裏面學到了哪些 Swift 知識點,但願本身能夠堅持下去。api
知識點總結:
1.屬性觀察者 willSet didSet
2.var let 關鍵字的區別和使用
3.@objc 修飾符使用
4.Swift 中Timer使用bash
知識點總結:
1.訪問限制關鍵字 private、fileprivate、internal、public、open閉包
private 只能在當前文件的當前模塊的做用域使用
fileprivate 只能在當前文件內使用
internal 是默認訪問級別,全部沒有單獨列出的都是這個權限
public 能夠在外部文件訪問,若是隻須要訪問就用它
open 能夠在外部文件訪問,若是須要繼承和重寫就用它
複製代碼
2.單例的使用,在 class 外面用 static let 修飾便可
3.重寫父類方法,類方法和實例方法的使用
4.強制解包和去解包 ! ?app
隱式解包: 就是在定義可選類型值的時候,加上 !進行強制解包
顯示解包: 在使用的時候加 !進行解包
去解包: 用的時候加上 ?可定義 optional 進行解包
複製代碼
5.空合運算符 ??,本質上是對三目運算符的一種簡化
6.convenience 和 required 關鍵字使用ide
知識點總結:
1.使用 CoreLocation 獲取用戶當前的地理位置
2.使用 URLRequest URLSession 調用騰訊地圖open api 獲取具體位置信息
3.JSONSerialization序列化JSON字符串post
知識點總結:
1.tableView 使用
2.Array的使用
3.UIRefreshControl 的使用學習
知識點總結:
1.複習tablView和tablViewCell在Swift中的用法
2.導入使用AVKit,熟悉AVAsset、AVPlayerItem、AVPlayer、AVPlayerViewController的使用
3.extension爲當前類建立擴展,能夠用來分隔功能,實現相關協議
知識點總結:
1.自定義一個view,繼承自UIView,添加imageView到scrollView上,監聽zommForView方法,實現手勢縮放圖片
2.designated initializers方法,關鍵點爲三點
**primary initializers:**designated initializers 是一個類的主初始化器,理論上來講是一個類初始化的必經之路(注:不一樣的初始化路徑可能調用不一樣的 designated initializers
**fully initializes all properties:**這點很明確,必須在 designated initializers 中完成全部成員屬性的初始化;
**calls an appropriate superclass initializer:**須要調用合適的父類初始化器完成初始化,不能隨意調用。
3.經過scrollViewDidZoom代理方法設置縮小時圖片居中
4.添加tapGesture,經過雙擊縮放圖片
知識點總結:
一天的時間是24小時,漸變色分爲12段,天天溫度最高是12點,而後溫度逐漸降低,圖層的漸變效果根據當前的溫度來設定,溫度根據當前的時間來設定,經過手勢滑動能夠設置當前的時間。
1.使用CAGradientLayer實現圖層的漸變效果
2.給UIColor添加extension方便生成顏色
3.經過重寫touchesBegan、touchesMoved方法來監聽手勢變化