LXFWeChat
Swift 3.0 高仿微信
兩個測試賬號: lxf lqr 密碼都是123456
原始碼地址
碼雲 git.oschina.net/LinXunFeng/…
GitHub github.com/LinXunFeng/…
在此提供存放於百度雲的完整專案【高仿微信】- 百度雲 希望各位能在我的專案上獻出一個寶貴的Star 謝謝
從2016年12月份開始做到現在,雖說這個專案看起來不大,但是鍛鍊人的地方還真是很多的,微信通訊錄聯絡人的按拼音排序,自定義表情鍵盤中遇到的分頁滾動,微信聊天介面的圖片顯示、語音資訊的動畫等。挑戰著各種各樣的需求,本人也將遇到的問題的解決方案做了記錄並整理了一下,希望能給iOS程式設計師同胞們帶來幫助。目前基本的聊天已完成,實現了一部分個人資訊的修改,功能我會盡快完善的!
模仿微信的導航欄
在navigationBar底部新增一個新增了漸變層的view
let blurBackView = UIView()
blurBackView.frame = CGRect(x: 0, y: -20, width: kScreenW, height: 64)
let gradintLayer = CAGradientLayer()
gradintLayer.frame = CGRect(x: 0, y: 0, width: kScreenW, height: 64)
gradintLayer.colors = [
UIColor.hexInt(0x040012).withAlphaComponent(0.76).cgColor,
UIColor.hexInt(0x040012).withAlphaComponent(0.28).cgColor
]
gradintLayer.startPoint = CGPoint(x: 0, y: 0)
gradintLayer.endPoint = CGPoint(x: 0, y: 1.0)
blurBackView.layer.addSublayer(gradintLayer)
blurBackView.isUserInteractionEnabled = false
blurBackView.alpha = 0.5
// 設定導航欄樣式
navigationBar.barStyle = .black
navigationBar.insertSubview(blurBackView, at: 0)
複製程式碼
表情皮膚和更多皮膚
遇到的問題總結了一下,可以參考下以下總結的文章
《iOS - Swift UICollectionView橫向分頁滾動,cell左右排版》
《iOS - Swift UICollectionView橫向分頁的問題》
聊天介面
《iOS - Swift UITableView的scrollToRow的"坑"》
《iOS - Swift UIButton中ImageView的animationImages動畫執行完畢後,圖示變暗》
首頁
目前完成的功能
微信介面
- 顯示右上角的選單
- 顯示最近聯絡人
- 最近聯絡人資訊未讀數的顯示
通訊錄介面
- 聯絡人的排序
- 聯絡人總數顯示
發現介面
- 動態小紅點的顯示
- 購物選項的連結跳轉
我介面
- 個人頭像的上傳與設定,及頭像的儲存
- 我的二維碼介面的顯示及二維碼的儲存
聊天介面
- 小視訊的錄製與傳送
- 小視訊的播放
- 聊天時間
- 圖片的傳送與顯示
- 未傳送成功的重發功能
- 語音的錄製與傳送
- 語音的播放動態效果
已知BUG
- 小視訊和圖片傳送出去後不能立即更新顯示縮圖
- 更換頭像模擬器測試正常,真機無效。。
2017-07-24 更新
抽空出來新增了一個簡單的直播功能(對方需要先進入到對應的聊天介面) 相關博文:iOS - 給高仿微信新增直播聊天功能 需要用到編譯好的B站開源庫ijkplayer ,由於打包好的檔案太大,傳不上來,所以需要各位去自己編譯整合進去。