原创 經驗之談—項目如何分模塊(MVC)

一般來說,無非就兩種情況: 我們假如一個項目是長這樣子的: 隨便找一個來說,比如找美團的: 按MVC來分模塊 根目錄Controller 團購 上門 商家 我的 更多 Model 團購 上門 商家 我的 更多 View

原创 經驗之談—OAuth授權流程圖

其實我們在開發中,經常需要解決獲得用戶的一些特定的數據,比如:可以選擇使用微博登陸,使用QQ登陸等等,然後我們間接的獲得用戶的頭像,暱稱等信息。這些都涉及到OAuth授權的內容 OAuth授權有這麼幾個特點: OAuth 協議

原创 經驗之談—如何讓圖片長的好看(contentMode)

我們在開發中,經常要在view,tableView,等顯示圖片,比如我們發微博(帶有圖片的),那麼我們常常要考慮如何處理這些圖片,是否拉伸,拉伸到什麼樣的效果等等,常常是需要考慮的問題 其實主要的還是要理解UIImageView

原创 經驗之談—UIButton傳值通過枚舉

其實在我們開發中,經常會遇到有些朋友寫的代碼裏面,由很多的數字,如果你突然看到了一堆的1,2,3,4,5,或者switch判斷裏面,case 1: cae 2: case 3 等等,這些代碼往往給人很蒙的感覺。無從下手,其

原创 Swift 部署到服務器—添加忽略文件

由於開發的需要,或者說是團隊開發的需要,常常要將代碼部署到服務器上,比如部署到github,oschina,上,對吧,比如oschina,但是oschina中,到了添加忽略文件的時候,並沒有我們想要的忽略文件: 那就需要

原创 Pod安裝 第三方框架

可能有些朋友在開發中,需要用到第三方框架的時候,都是直接拖進項目裏面,然後引入需要的頭文件,開始操作。其實也能把項目做出來。但是由於第三方框架一般依賴於系統的一些框架,所以你導入第三方框架的時候,編譯之後,還得去導入系統的一些框

原创 經驗之談—自定義tabbar(繼承於UITabBar)

自定義tabbar一般來說有兩種方式,一種是繼承於系統的UITabBar,一種是繼承與UIView的tabbar。 我們現在來看一下繼承與UITabBar這種情況中需要注意的一些細節。其實繼承與UITabBar我們無非是想修改一

原创 經驗之談—正則表達式實現圖文混排

在項目中,我們經常需要發表情,以及經常需要將表情字符轉換成表情。因爲表情是一個圖片,所以我們發給服務器的時候,實際上是發一段特殊的文字給服務器,然後轉換成表情。以免浪費用戶過多的流量。 那接下來,我們就來介紹一下,如何使用正則表

原创 提高iOS開發效率的第三方框架等--不斷更新中。。。

寫iOS 程序的時候往往需要很多第三方框架的支持,可以大大減少工作量,講重點放在軟件本身的邏輯實現上。 GitHub 裏面有大量優秀的第三方框架,而且 License 對商業很友好。一下摘錄一下幾乎每個項目都想集成的幾個框架。  

原创 經驗之談—實現圖片下拉放大的效果

這裏我們主要是用一下,如何能保持原來的圖片的寬高比來輕鬆的實現放大的效果,主要的是UIViewContentModeScaleAspectFill這個起的效果: 我們用tableView來展示這個效果吧 我們這裏並沒有計算

原创 經驗之談—如何快速熟悉公司的舊項目

我們打個比方,假如你去到一家公司,然後一開始,要下載公司的舊代碼,接下來就是熟悉公司的舊代碼,假如這個項目是兩三年前做的,那麼一直搞到現在,假設有10萬行代碼,那麼讓你來熟悉這些舊代碼,然後在舊代碼的基礎上,增加新的功能模塊,是

原创 CollectionView實現瀑布流(swift)

我們用純代碼實現一下瀑布流: AppDelegate: var window: UIWindow? func application(application: UIApplication, didFinishLaun

原创 生成二維碼

我們簡單的使用一下CIFilter來完成二維碼的生成,解剖一下二維碼的生成過程 查找到 kCICategoryBuiltIn 內建的濾鏡名 NSArray *filterNames = [CIFilter filterN

原创 精簡版—憤怒的小鳥

首先我們要佈局一下,使用sizeclass來佈局: 連線過來: @property (weak, nonatomic) IBOutlet UIButton *bird; @property (strong, nonato

原创 makeObjectsPerformSelector 實現輕鬆移除subview

之前我們移除subview 總是通過遍歷,然後在遍歷中移除,比較費勁,現在發現了一個比較便捷的辦法,就是通過makeObjectsPerformSelector 實現讓每一個元素執行同一個方法:removeFromSupervie