星空网 > 软件开发 > 操作系统

xib制作聊天界面

仿QQ聊天布局

xib制作聊天界面images/loading.gif' data-original="http://images2015.cnblogs.com/blog/657299/201512/657299-20151230091543323-815805989.png" />

目前查到的资料大部分都是这样的效果,而且设计的思路都是一样的,

一个tableview使用一个自定义的cell,当cell成功创建以后,依靠一个中介类传递的数据来判断到底是左边还是右边发送的数据,然后重新绘制内容或者布局。

但是对于习惯xib来说,并不擅长代码适配和布局,遂根据思路调整

首先界面

xib制作聊天界面

然后是自定义的cell

xib制作聊天界面

虽然看起来很奇怪 但是根据思路的话这是一种简单粗暴的方法,这个cell其实是两边单独显示时的效果合并在一起的,通过数据的中介类可以知道应该需要显示那边,然后隐藏另外一边的数据显示

  dataSource.blockConfigureCell=^(CellFour* cell,Message* model)  {    cell.CFMessage=model;    switch (cell.CFMessage.MCellSystle)    {      case CellSystleLeft:      {        cell.headimageRight.hidden=YES;        cell.CFbackGroundRight.hidden=YES;        cell.message.text=model.MDictionary[@"message"];      }        break;        case CellSystleRight:      {        cell.headImage.hidden=YES;        cell.CFbackGroundLeft.hidden=YES;        cell.messageRight.text=model.MDictionary[@"message"];      }        break;      default:        break;    }  };

其实这也是很无奈的做法,开始的时候使用的是两个自定义的cell即左边和右边的显示cell是独立开的,但是在注册时就会产生两个重用的标示,虽然在不进行重用的时候显示也可以达到以上的效果,但是一旦进入了重用队列里面那么就会只用最新修改的重用标示,最终的结果就是所有的样式变成一个样式不分左右。

然后又尝试了一下,一个自定义的cell里面含有两种样式,虽然解决了重用标示的问题,但是问题就是cell创建的问题,因为这种会在创建就决定了cell是左边显示的还是右边显示的,但是传递cell的中介类告诉cell

应该使用那种样式的时候cell已经创建完成了(创建之前传递数据的话cell为空就没意义了)。就达不到动态调整的目的了。

问题暂时纪录一下,所以两边如果想做到不同的显示效果的话像qq的不同气泡(xib会比较麻烦代码反而会简单一点)。




原标题:xib制作聊天界面

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

陆运到泰国怎么走:https://www.goluckyvip.com/tag/104154.html
陆运到泰国线路:https://www.goluckyvip.com/tag/104155.html
陆运发到泰国:https://www.goluckyvip.com/tag/104156.html
泰国可以陆运吗:https://www.goluckyvip.com/tag/104157.html
泰国那瓦夏瓦陆运:https://www.goluckyvip.com/tag/104158.html
到泰国走陆运:https://www.goluckyvip.com/tag/104159.html
长治婚庆女司仪和主持人:https://www.vstour.cn/a/366176.html
北京丰台区水上乐园哪家好玩?:https://www.vstour.cn/a/366177.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流