前言
從Android開發(fā)轉(zhuǎn)入到iOS開發(fā)參與的第一個項目,從處理一個字符串轉(zhuǎn)換問題都要查詢,磕磕絆絆的前進(jìn),到現(xiàn)在可以大致的實現(xiàn)需求中所要求的功能效果。這個過程是對OC的API熟悉的過程。跟之前學(xué)習(xí)Android的套路基本一致。熟能生巧。項目分析
項目是一個輕社交類型的資訊項目。里面包含功能大體。
布局瀑布流
類似的IM
分享
第三方推送
圖片效果處理
項目效果圖如下:
- 布局瀑布流的實現(xiàn)
主要是使用tableview 自定義CELL形式。
以標(biāo)準(zhǔn)的單元格 內(nèi)部構(gòu)建固定的一個ITEM (自定義一個包含內(nèi)容圖片,用戶頭銜,用戶名,提交時間差)。再通過內(nèi)行類型去控制該cell要使用的那種cell模式 一共是四種。每種包含Item的數(shù)量不同。類似S型排布。
- 類似的IM
通過請求時間固定輪詢的方式。實現(xiàn)一個模擬IM效果。單位控制在5S,用戶沒有在私信聊天頁面內(nèi),是有在外部做一個推送消息機(jī)制。聊天布局頁面采用了第三方的氣泡實現(xiàn)效果,鍵盤內(nèi)還包含有第三方的表情庫。
- 分享
使用友盟集成的SDK。輕便快捷。只需要熟悉調(diào)用API接口。即可實現(xiàn)。
- 第三方推送
使用的是個推,在APP端使用時候先注冊key ,上傳開發(fā)和推送證書,服務(wù)器端設(shè)置相關(guān)內(nèi)容,調(diào)用第三方接口,個推再進(jìn)行處理推送過來。
- 圖片效果處理
使用系統(tǒng)自帶效果處理,使用異步方式實現(xiàn)。
里面內(nèi)部用到的第三放框架解析
- HexColors : 顏色處理 @"#be9e81" 轉(zhuǎn)換為對應(yīng)的UICOLOR
- MLEmoji:自動識別網(wǎng)址、號碼、郵箱、@、#話題#和表情的label
- JSQSystemSoundPlayer:同下
- JSQMessagesViewController: 聊天氣泡效果
- JSBadgeView:可定制的在視圖上顯示徽章的組件(右上角+數(shù)字)
- SJAvatarBrowser: 圖片點擊顯示放大效果
- SMS_SDK:短信校驗功能使用
- libGeXinSdk:個推SDK注冊使用接收
- TPKeyBOardAvoiding:用于在scrollview中實現(xiàn)自動上滾,避免鍵盤遮蓋住了textfield,textview等控件
- QiniuSDK: 7牛SDK,用于網(wǎng)絡(luò)云存儲圖片
- PlaceholderTextView:讓 UITextView 在沒有輸入文字的時候支持填充placeholder(默認(rèn)文字)
- CLImageEditor:最基本的圖片處理編輯功能。如編輯,濾鏡,顏色調(diào)整,裁剪,旋轉(zhuǎn),色彩曲線功能
- HPGrowingTextView:實現(xiàn)了增加多行文本和減少文本時輸入框的伸縮和滾動效果
- PureLayout:提供模板布局
- VGParallaxHeader:可以實現(xiàn)多種不同表頭效果。包括拉長、放大圖片、變換顏色等
- NSDate-TimeAgo:IM顯示距離時間組件
- AGEmojiKeyBoard:對 emoji 表情支持的鍵盤控件
- AFNetWorking:非常出名受歡迎的一個網(wǎng)絡(luò)庫,再自己封裝一次成為基礎(chǔ)的網(wǎng)絡(luò)請求層
- MBProgressHUD:toast 提示特效組件
- MJExtension: JSON 和模型之間最快捷方便的轉(zhuǎn)換組件
- MJRefresh:下拉上拉刷新集成組件
- SDWebImage:網(wǎng)絡(luò)圖片處理框架
- UMSDK:友盟SDK
以上就是所用到的開源框架和組件
- 還有一些特定的小技巧小功能
- 頁面數(shù)據(jù)傳遞刷新
A頁面數(shù)據(jù) B頁面修改 同時改UI顯示 用到block方式
H5交互調(diào)用
js調(diào)用APP本地代碼,和調(diào)用web的JS代碼等預(yù)編譯文件
在PCH中加入大量需要預(yù)先編譯的模塊和區(qū)分調(diào)試版和發(fā)布版的控制貫穿這個APP的單例設(shè)置
在PCH中聲明,在登錄APP的入口處進(jìn)行初始化。end
對于初學(xué)者來說,這個已經(jīng)是足夠入門了。
所用到的技術(shù)和組件框架等都是有很多值得深入學(xué)習(xí)研究的。
自定義tabbar欄,banner,樣式cell,JS交互,數(shù)據(jù)刷新機(jī)制等等。
與當(dāng)初做Android對比起來。很多也是細(xì)節(jié)上的交互差異。
PS:有錯誤或者不足之處,歡迎指出。謝謝。