iOS Swift 高仿微信

LXFWeChat

Swift 3.0 高仿微信

两个测试账号: lxf lqr  密码都是123456

源码地址

码云 http://git.oschina.net/LinXunFeng/LXFWeChat

GitHub https://github.com/LinXunFeng/LXFWeChat

在此提供存放于百度云的完整项目【高仿微信】- 百度云 希望各位能在我的项目上献出一个宝贵的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 仿微信聊天图片显示》

《iOS - Swift UITableView的scrollToRow的"坑"》

《iOS - Swift UIButton中ImageView的animationImages动画执行完毕后,图标变暗》

首页

《iOS - Swift 仿微信小红点(无数字)》

目前完成的功能

微信界面

  1. 显示右上角的菜单
  2. 显示最近联系人
  3. 最近联系人信息未读数的显示

通讯录界面

  1. 联系人的排序
  2. 联系人总数显示

发现界面

  1. 动态小红点的显示
  2. 购物选项的链接跳转

我界面

  1. 个人头像的上传与设置,及头像的保存
  2. 我的二维码界面的显示及二维码的保存

聊天界面

  1. 小视频的录制与发送
  2. 小视频的播放
  3. 聊天时间
  4. 图片的发送与显示
  5. 未发送成功的重发功能
  6. 语音的录制与发送
  7. 语音的播放动态效果

已知BUG

  • 小视频和图片发送出去后不能立即更新显示缩略图
  • 更换头像模拟器测试正常,真机无效。。

2017-07-24 更新

抽空出来添加了一个简单的直播功能(对方需要先进入到对应的聊天界面) 相关博文:iOS - 给高仿微信添加直播聊天功能 需要用到编译好的B站开源库ijkplayer ,由于打包好的文件太大,传不上来,所以需要各位去自己编译集成进去。

效果图

动态图

静态图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值