學習Swift的正確姿勢 -- 實踐Swift版CSStickyHeaderFlowLayout

Swift實踐項目RLStickyHeaderFlowLayout

為什么要學Swift?


說Swift很重要,也很有發(fā)展什么的,都是老生常談了。對于我來說,學習Swift也是今年下半年的一項規(guī)劃,但是真正讓我開始投入學習Swift還得說件有意思的事:

前幾天,在看博客的時候,偶然看見一個人在github上開源的一個項目,然后就進了這個人的github主頁??戳艘粫l(fā)現 —— 他的項目怎么大部分都是copy別人有名的開源項目呢?原來,雖然是copy別人家的項目,但卻是用Swift語言重寫的。好嘛,醬紫也可以啊。。。不過,他的項目倒是也挺受歡迎,點星量也是不少的。等等,Swift?有名的開源項目?重寫?哈哈。。這是個不錯的主意 —— 用Swift重寫別人的好的項目

一種莫名的興奮涌上心頭,這豈不是學習Swift的最佳姿勢?

于是,便開始了Swift的學習。

搞定基礎語法


初識Swift,覺得這語言還是挺棒的,簡潔方便。不過,由于英文水平有限,還是不要看Swift的官方文檔github地址)了,還是看些國內大神們翻譯的吧:我這里使用的有?Swift學習指引?& CooaChina-Swift

其實,如果英文基礎好的人,還是建議看蘋果的官方文檔。蘋果文檔不僅寫的詳細,而且還會有一些示例。比如前兩天看人家博客中用Swift寫的牛頓擺,原來,是蘋果文檔中就有的Newton's Cradle

有了這些資源,那么就開始一邊學一邊嘗試寫代碼了。

這里值得說的是,我并沒有先要把Swift完全懂了才開始動手我的cosplay,而是花了差不多半天兒的時間把基礎的語法看了一遍,了解Swift語言的基礎。對于iOS開發(fā)者來說,如果oc基礎不錯的話我感覺學起來還是挺容易的。如果是跨行學習Swift,只要是對自己所用的語言比較扎實的話,學起來也是蠻輕松的。而我之前自學了一些JavaScript,所以在學Swift的時候也是有很大幫助??傊幸稽c, 如果你之前的語言基礎好的話,學習Swift就會輕松的多了?

開始敲代碼


Code是開發(fā)者學習語言的最佳方式,所以,那就趕緊找個項目show一下吧。由于之前研究`UICollectionView`的原因,我選擇了@jamztang大神的開源項目CSStickyHeaderFlowLayout。這是一個用`UICollectionView`來替代`UITableView`的項目,支持`UITableView` plain模式下section header的懸停功能,并且加入了具有視差效果的頂部視圖parallax header。如果,自己想要定制collectionview的layout來滿足更復雜的需求,源碼的修改也是比較容易的 —— 只需要,在`layoutAttributesForElementsInRect`的方法中,保留源碼中對于header的處理,并且自己的item attribute的frame按照源碼做y值的高度差處理就行了。

選擇cosplay的項目,有幾個原則是要注意的:一定要選擇自己能了解的項目,也就是說對源碼的實現原理很清楚,這點很重要。另外,一定要記得標明原作,尊重原作者的權利。

就這樣,開始cosplay了。期間,也會遇到一些問題。而這點,正是我們需要的。因為,只有實踐中的問題才能讓我們更好的成長,更快的掌握知識。而這個時候,要有點耐心,把問題一個個解決掉,那快感,可是不言而喻的。經過了一天多的時間,從學習到cosplay,再到調試bug,終于把CSStickyHeaderFlowLayout的Swift版RLStickyHeaderFlowLayout完成了。真是神清氣爽啊。

來個Carthage吧


既然Swift都已經完成了,那還等什么,也讓它支持Carthage吧。于是,又開始研究Carthage了。你看,這是多么有意思的事啊!學習Swift,隨后又學習了Carthage動態(tài)framework包管理,何樂而不為呢?

其實,在學習使用Carthage的時候還是有很多坑的。安裝使用倒是很簡單,官方下載安裝,配置Cartfile文件都是簡單的寫上你要用的項目就行。不過,為了是自己的項目支持Carthage,以方便別人使用,做Carthage打包操作的時候還是遇到了些麻煩的:

打包Swift為了在framework中使用,提供接口的地方一定要用public標示,否則別人是看不見你的類的(這涉及到了訪問控制的問題);而且,Swift的注釋也是有要求的,注釋不對,framework中可是沒有注釋的哦(注釋問題可以參考Swift注釋風格-簡書

總結


經過幾天的實踐,雖然不能熟練掌握Swift,但是卻學到了很多東西,也對Swift有了更深的認識。所以說,實踐是檢驗真理的唯一標準。

那還等什么,想學Swift的小伙伴們,也趕緊動手cosplay起來吧。。。?

我的Hexo博客

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 發(fā)現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 15,291評論 4 61
  • 老師: 您好! 如題,為了薪資待遇自從換了工作以后,就由衷的不喜歡這個工作,以前在一家日企做售后服務,現在做行政工...
    熊玲心理咨詢閱讀 1,697評論 0 2
  • 提問 去三亞旅游要帶什么要注意什么 我準備這幾天去三亞旅游 跟團去的雙飛6日的 我想知道去的時候我應該帶些什么東西...
    Sally韓涵閱讀 285評論 0 0

友情鏈接更多精彩內容