暂做思路整理,得空上传代码、展示图与demo。

 

难点:

  • 纯代码布局:cell写控件,frame写位置大小信息,block链接cell控件与vc的操作实现。
  • @话题链接用户字体,变蓝可点击:自定义label控件,计算点击位置与正则后的特殊字符位置对比。
  • 图片排版
  • 列表中的评论展示

扩展:1、代码写控件的思考,这里是基于基准控件写当前控件的坐标和尺寸大小,没有设置约束,因为业务经常变,且一个控件的位置情况很多,所以不适合写约束。类比是否有什么其他方案来实现?

 

一、列表页、详情页UI布局

主要思路:

1、使用代码编写UI

为了应对

  • 多人编程;
  • 界面复杂,一个控件可能在不同业务情况下,位置或者状态会有改变;
  • 业务不断改变,旧控件修改、删除,添加新控件等情况。

所以选用代码编写UI。

2、创建控件(Cell页面)

  • 梳理并创建业务中所有控件;头模块、内容模块、评论展示模块、工具栏模块。
  • 结合业务需求,配置控件属性、状态;
  • 装配数据;
  • 创建操作block,并配给对应控件,方便vc中实现操作;

3、将控件的位置信息提取到一个class中(Frame页面)

  • 创建每个控件对应的位置参数,比如CGRect nameLabelF。
  • 根据上下左右控件,确定间隔距离的规则,以及数据情况,计算当前控件的坐标和大小,CGRectGetMaxX、CGRectGetMaxY、MAX使用比较多。

4、图片装配和排版

 

二、文本可点击

自定义一个UILabel,因为正文部分,涉及到

  • 颜色、样式的处理
  • 处理部分文字可点击(@话题链接用户)
  • 文本高度计算。将这些封装到一个UILabel类中,更简洁一些。

参考KILabel框架自定义UILabel,基本原理是:

  • 提取特定字符的正则表达式,记录range;
  • touch事件中,获取点击的point;
  • 根据point,判断在range中的哪个位置。
  • 原理参考文章

 

三、转发、评论、点赞相关

转发、评论、点赞列表:每个列表中用正文的KLLabel控件。

转发、评论、点赞操作:通过block实现cell与vc操作问题。

操作同步各页面问题:发送更新通知–>刷新页面或者刷新当前cell

转发页

评论框

 

四、其他操作

1、推荐关注:画一个推荐cell,因为布局相对简单,所以用xib实现的。

  • feedcell内部的相关推荐:在feedcell中,将它当做一个view,给配属性和位置信息就好了
  • 和feedcell平级,在table中装配。

2、制作卡片:根据业务需求,通过xib排版页面,然后UIGraphicsGetImageFromCurrentImageContext将页面制作为图片,关于图形的UIGraphicsGetCurrentContext可参考文章1文章2,了解下自定义绘图

分类: iOS开发

发表评论

电子邮件地址不会被公开。 必填项已用*标注