之前公司需求康栈,要一個手勢密碼,Swift的手勢密碼庫似乎好像沒有,反正我沒有找到啥么,那就用OC的將就一下吧登舞!用的馮成林哥哥的CoreLock。沒有cocoapods悬荣,這個時代居然沒有cocoapods菠秒,我估計是方便搬運工們自定義吧。其實我想吐槽一下氯迂,哥哥的代碼很隨意啊践叠。。嚼蚀。
如果你就這樣禁灼,叫我怎么受得了,果斷翻譯轿曙。
廢話不多說了弄捕,其實剛開始就想翻譯成Swift的,因為公司是用swift開發(fā)的导帝。之前對siwft還不是很熟守谓,所以就所以啦,你懂的您单!最近陸陸續(xù)續(xù)翻譯了幾個OC的小庫斋荞,功力好像有點提升了。
? ? ? ? ? ? ? ? ? ? ? ? ? 這是原版 OC ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?小菜我的
? ? ? ? ? ? ? ? ? ? ??RKNotificationHub? ? ? ? ? ? ? ? ? ? ? ? ?RKNotificationHub.swift?
? ? ? ? ? ? ? ? ? ? ? ?SphereMenu? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?SphereMenu.swift? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ?VGParallaxHeader? ? ? ? ? ? ? ? ? ? ? ? ?VGParallaxHeader.swift
還有一些就不貼出來了睹限,有點麻煩有點累譬猫。其中還有一個自己寫的輪播控件,跑題一下羡疗,輪播控件苦惱了我很久染服,Swift沒有太好的輪播庫,OC的有一個叫SDCycleScrollView還不錯叨恨,應(yīng)該很多人都知道柳刮。輪播其實在項目實踐中有兩個比較嚴重的問題,第一個是快速滑動痒钝,最后或者第一張會卡頓秉颗。如果你用的上面那個庫,沒有發(fā)現(xiàn)那個問題送矩,那么請你打開愛奇藝客戶端快速滑滑就知道了蚕甥。第二個是你在將要滾動時切換視圖會出現(xiàn),這個別說你的沒有栋荸,我測了淘寶的都會有菇怀,觸發(fā)很簡單凭舶,你把間隔時間設(shè)成1s,然后快速切換爱沟。
好像扯了半天的蛋帅霜,還沒有進入正題。莫急呼伸,主角出場不都得鋪墊鋪墊一下嗎身冀?接下來,上動圖
好像不錯的樣子哦括享。
我好像不知道說什么了搂根。。奶浦。
首先肯定要感謝原著啊兄墅。原著UI使用了一些xib,個人其實是反感xib的澳叉。就是不大會唄隙咸,裝什么b啊。剛開始翻譯的時候還比較順利成洗,因為原著結(jié)構(gòu)理得很清晰五督。翻著翻著問題就來了。OC的setter getter瓶殃,我估計很多從OC轉(zhuǎn)過來的同學都和我遇到了同樣的問題充包。
原著是這樣寫的
在Swift中應(yīng)該這樣
Swift的存儲屬性是不需要setter 和getter方法的,只有計算屬性才需要遥椿,如果不定義一個另外一個屬性用于存儲基矮,直接setter getter會死循環(huán)的,具體原因我也不太懂冠场,原諒我這個小菜家浇。其他的好像也沒有太多好說的了。
接下來是做cocoapods了碴裙,是照著這篇簡書做的http://www.reibang.com/p/98407f0c175b钢悲,前幾步都挺順利的,到了配置spec文件的s.source_files那一步舔株,啊莺琳,深呼吸一下,折騰了好久载慈。這里特別說一下
那么我的spec文件應(yīng)該是這樣的
因為此時已經(jīng)在GesturePassword那個文件里了惭等,所以再往里走一層就對了,如果Classes外面還有一個文件夾加aaa那么s.source_files后面應(yīng)是 "aaa/Classes/**/*.swift",可能是我太蠢了办铡,反正折騰了半天咕缎,后面**/*表示的是Classes文件夾的所有文件珠十,包括文件夾。另外幾種格式可以參考這個 https://github.com/CocoaPods/CocoaPods/issues/1259凭豪。
這是我做庫遇到的第一個問題,第二個問題是打tag晒杈。
git tag 0.0.1
git push --tags
pod trunk push GesturePassword.podspec
這個幾步都做好了嫂伞,當然之前你還得注冊你的賬號,然后收到郵件驗證才能繼續(xù)上三步拯钻。
突然發(fā)現(xiàn)我的庫有點問題帖努,三下五除二改好了,commit到git遠端粪般,然后pod update一下用到我自己庫的那個工程拼余,咦?怎么pods里面的代碼沒有變化亩歹,看一下終端匙监,pod update成功的啊,但是我明明修改了我的庫小作,但是更新為什么不是綠色的亭姥?如果一個庫是新裝的,或者pod update那個庫會是綠色的顾稀,刪除是紅色的达罗,不知道大家有沒有注意到。
就像這樣
繼續(xù)想一下静秆,哪里錯了啊粮揉,上網(wǎng)各種查,結(jié)果是你更新了你的庫后抚笔,雖然遠端git庫你更新了扶认,但是podspec文件還是關(guān)聯(lián)的是你修改之前的那個版本。cocoapods的大概原理就是塔沃,cocoapods遠端有一個podspec倉庫蝠引,里面有所有第三個庫的podspec文件,如果你用cocoapods管理第三方庫蛀柴,它會把所有的podspec文件拉下來螃概,然后根據(jù)podfile文件里的庫,找他們的podspec文件鸽疾,下載對應(yīng)的庫吊洼。所以,更新庫后又得重新上傳podspec文件了制肮。
以上才不多的我遇到的所有問題了冒窍,說的不對的地方還請指教递沪。
最后附上GesturePassword