标签:
从开始学习ios时,做这个小项目就卡了很久,到现在这个小项目算是我做的比较熟练的一个了。oc和swift两个版本都顺利完成了。因此总结一下曾经在这个小项目中遇到的种种问题!
微信聊天界面主要内容有三部分构成:
1.TableView部分,设置好各种必须的代理;
2.TableViewCell部分,在自定义cell中要设置好三个控件的位置,这也是整个过程中最麻烦的部分;
3.设置TextField部分发送消息时,界面消息的刷新和TextField代理的设置。
第一部分:
主要设置TableView的必备代理;
cell的高度,section的数量,rownumber的数量,cell这几个简单的设置。需要注意的是:在设置单元格高度的时候需要计算出每次聊天内容的长度,通过聊天内容的高度来动态计算cell的高度。
第二部分:
在聊天过程中,由于两个人的头像和对话框在界面的两边,因此需要判断朋友和自己的不同位置。
在cell中主要设置三个控件的位置-->[头像(UIImageView),聊天气泡(UIImageView),聊天文字(UILabel)],通过动态计算各自控件的frame。
头像的大小固定设置,注意:聊天内容和气泡的大小,主要通过计算输入文字的长度,这个size的大小通过这个方法:
其次需要注意的是:气泡图片的如果按照原图设计会失真,因此通过extention为UIImage添加一个新方法:
第三部分:
自己消息的发送通过textfield的代理来推送实现,在nsmutablearray中添加新数据,并更新tableview数据。
由于每次编辑聊天内容时都会弹出键盘,遮住textfield,我们通过一个动画效果来实现键盘和textfield一起移动
键盘向上和向下滑动的时间和高度,我们通过设置一个广播监听来得到它的值。
以上各点就是我在做这个小项目的过程中遇到的一些小问题。
标签:
原文地址:http://www.cnblogs.com/moxuexiaotong/p/4823090.html