野鳥裝備IOS版開發筆記(1.0版本)
歡迎關注老碼農的微信公共賬號,與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區域之外的部分無法接收事件的問題。
相關文章
- IOS 開發筆記2iOS筆記
- iOS開發備忘筆記 (3)iOS筆記
- iOS開發備忘筆記 (2)iOS筆記
- iOS開發筆記(一):記憶體管理iOS筆記記憶體
- redis筆記1.0Redis筆記
- promise v1.0版本Promise
- IOS開發筆記 IOS如何訪問通訊錄iOS筆記
- 【開發筆記】MySQL 5.6.36 Windows x64位版本的安裝筆記MySqlWindows
- iOS開發筆記(七):深入理解 AutoreleaseiOS筆記
- iOS-Socket開發學習筆記-1iOS筆記
- 筆記-Flutter開發環境搭建Mac版筆記Flutter開發環境Mac
- iOS開發企業版ipa分發(In House模式)記錄iOS模式
- iOS開發備忘筆記 (持續更新中)iOS筆記
- iOS開發筆記(五):UIScrollView實現原理iOS筆記UIView
- Vue1.0爛筆頭筆記Vue筆記
- IOS企業版開發iOS
- 《高效能iOS應用開發》讀書筆記iOS筆記
- ANDROID WebSocket+STOMP 1.0版本AndroidWeb
- 2345安全衛士1.0版本正式
- iOS開發筆記— 資料庫、Crash、記憶體問題分析iOS筆記資料庫記憶體
- 菜鳥的讀書筆記筆記
- iOS 藍芽開發 - swift版iOS藍芽Swift
- iOS開發之微信山寨版iOS
- iOS開發筆記(三):訊息傳遞與轉發機制iOS筆記
- iOS開發筆記(九):UIViewController的生命週期iOS筆記UIViewController
- ios開發筆記--狀態列的自定義,隱藏iOS筆記
- iOS陸哥開發筆記(七) (AVFoundation簡單介紹)iOS筆記
- laravel由5.4版本直接升級7.x版本筆記Laravel筆記
- 全棧JVM框架Micronaut通向1.0版本之路全棧JVM框架
- React的替代方案Inferno釋出1.0版本React
- fyne 開發筆記筆記
- Laravel 開發筆記Laravel筆記
- golang 開發筆記Golang筆記
- 【筆記】敏捷開發筆記敏捷
- LiteFlow 2.6.4版本發行註記,里程碑版本!
- iOS筆記iOS筆記
- php 學習筆記之搭建開發環境(mac版)PHP筆記開發環境Mac
- iOS開發筆記 | 自定義具有內邊距的labeliOS筆記