在這里總結(jié)一下自己平時(shí)開(kāi)發(fā)即時(shí)通訊類(lèi)App常用的控件,以供大家參考。
1、聊天列表
SWTableViewCell: https://github.com/CEWendel/SWTableViewCell.git
正常情況下隱藏右側(cè)按鈕的,向左滑動(dòng)顯示cell右側(cè)的按鈕(類(lèi)似于iOS 7郵件應(yīng)用程序)。微信應(yīng)用:聊天列表向左滑動(dòng),顯示標(biāo)記未讀,刪除消息按鈕。
2、文字消息
M80AttributedLabel: https://github.com/xiangwangfeng/M80AttributedLabel.git
文字內(nèi)容的消息可以使用M80AttributedLabel,實(shí)現(xiàn)文字與表情的混排。一般使用氣泡作為背景。
3、語(yǔ)音
VoiceConvert: http://code4app.com/ios/邊錄音邊轉(zhuǎn)碼/521c65d56803fab864000001
iPhone設(shè)備錄音為WAV格式,WAV格式文件太大,不便于傳輸。使用VoiceConvert可以將WAV轉(zhuǎn)化為amr格式文件進(jìn)行傳輸,文件大小被壓縮到之前文件的10倍左右。當(dāng)接受方接受消息后需將amr文件轉(zhuǎn)化為WAV文件,進(jìn)行播放。注:筆者實(shí)現(xiàn)語(yǔ)音功能時(shí),使用的是VoiceConvert,而微信不是。
4、聊天文字輸入框
HPGrowingTextView:https://github.com/yatinsns/HPGrowingTextView.git
聊天輸入文字,可以根據(jù)輸入文字的多少自動(dòng)改變輸入框的高度。
5、微信右上角的+點(diǎn)擊展示列表效果
DXPopover:https://github.com/xiekw2010/DXPopover.git
感覺(jué)微信的效果點(diǎn)擊+號(hào),展示列表,使用的就是frame的縮小動(dòng)畫(huà)。筆者推薦的效果一定比微信的效果要好。
6、UUID、手勢(shì)密碼的存儲(chǔ)
SSKeychain:https://github.com/soffes/sskeychain.git
:使用keychain存儲(chǔ)關(guān)鍵數(shù)據(jù),eg:UUID、手勢(shì)密碼等。當(dāng)刷機(jī)、升級(jí)系統(tǒng)或者卸載應(yīng)用時(shí),UUID或手勢(shì)密碼依舊還保存。蘋(píng)果推薦使用KeychainItemWrapper,但實(shí)際開(kāi)發(fā)中并不是很好。筆者建議使用SSKeychain,方便易用。
7、廣告自動(dòng)輪播
HYBLoopScrollView:https://github.com/CoderJackyHuang/HYBLoopScrollView.git
實(shí)現(xiàn)自動(dòng)循環(huán)滾動(dòng),一般用于展示廣告頁(yè)。微信在貼紙宣傳處就使用了輪播。
8、數(shù)據(jù)庫(kù)
FMDB:https://github.com/ccgus/fmdb.git
FMDB如此強(qiáng)大,啥也不說(shuō)了。
9、圖片瀏覽器
MWPhotoBrowser:https://github.com/mwaterfall/MWPhotoBrowser.git
圖片瀏覽器,微信朋友圈點(diǎn)擊小圖,查看大圖的效果。
10、Tinder、探探等翻牌子
MDCSwipeToChooseView:https://github.com/modocache/MDCSwipeToChoose.git
Tinder、探探等翻牌子效果
11、刷新
MJRefresh:https://github.com/CoderMJLee/MJRefresh.git
MJRefresh有李明杰大神的開(kāi)源之作,其他的自不用說(shuō)。不過(guò)筆者根據(jù)基于MJRefresh重新定制了一個(gè)可以修改顏色的loading菊花(https://github.com/jiulin/MJRefresh.git)
13、網(wǎng)絡(luò)
AFNetworking: https://github.com/AFNetworking/AFNetworking.git