野鳥裝備IOS版開發筆記(1.0版本)

農場老馬發表於2015-09-02
歡迎關注老碼農的微信公共賬號,與CSDN部落格同步 

野鳥裝備終於要上線了,總結一下遇到的坑,供大家品嚐。

呼叫弱引用的block屬性崩潰

遇到的第一個技術性崩潰,是因為呼叫弱引用的block屬性造成的。
通常,在block回撥中,如果weakSelf已經被釋放,那麼呼叫weakSelf的方法(如:[weakSelf method])會沒有任何效果。但如果是呼叫weakSelf的block(如:weakSelf.block()),則會崩潰。

UIWebView進度條處理

UIWebView的進度條無法精確計算,使用了NJKWebViewProgress框架,但這個框架效果並不太好,要麼為0,要麼卡在10%左右不動,然後突然一下到100%。二期會改成微信那樣的展示方式,無論如何一直在動,告訴使用者我在努力,而這也是進度條存在的唯一目的,因為使用者不會關心到底載入了百分之幾。

UITableView的滾動條

習慣了Android上面列表的滾動條在Cell之外的風格,看IOS上面滾動條蓋在列表Cell上面真心很醜,於是試了N種方式,終於通過調整滾動條的scrollIndicatorInsets 為: UIEdgeInsetsMake(0, -5,0, -5);把滾動條調整到了Cell顯示區域的右側。

引入思源字型

IOS字型實在是不怎麼漂亮,借鑑大家的做法,使用了思源字型,不過壓縮後11M多檔案大小,真讓人心疼,不過效果真的很棒。還有一個缺憾就是思源字型對decent的處理顯示有問題,對於單行的Label,或者多行Label的最後一行,g的下半部分會顯示不出來,這個需要自己解決一下了。我是用TTTAttributedLabel繪製時底部新增了幾個點。

html語法支援

我們的文章詳情中使用了部分html語法,我把NSAttributedString和TTTAttributedLabel進行了裁剪改造,糅合成一個控制元件來做支援。支援像帶下劃線樣式的連結、文章內部分字型顏色設定、價格設定strike中劃線樣式等,直接把一個使用html語法的字串扔給TTTAttributedLabel就可以了,比直接使用TTTAttributedLabel要方便很多。

UIScrollView的使用

我整個專案99%都是使用xib來完成的,在佈局“鳥巢”時,最下面的“點選登入”在部分機器上會被Tab擋住,所以給整個頁面套了一層UIScrollView,但使用xib佈局時,因為UIScrollView要依賴基內容frame才能確定其屬性,而xib佈局又需要先放置UIScrollView,所以出現了先有雞還是先有蛋的問題。最後百度了一把,通過給UIScrollView加了一層虛擬的ContainerView來解決此問題。
這帶來了一個Bug,就是處理在“鳥巢”頁面初始可見區域之下的“點選登入”的下半部分無法接收到點選事件。經過排查,發現ContainerView的userIntractEnable沒有設定為YES。 

補充於2015.11.13

在做野鳥裝備 2.0的時候發現,ContainerView要寬和高要先在xib中設定為固定值,再在程式碼中動態計算調整才可以,否則還是會出現ScrollView區域之外的部分無法接收事件的問題。

相關文章