iOS 时间线-显示学习进度,完成进度等

当需要显示学习进度完成的情况,发现以"时间线"的方式显示效果不错,写个简单demo以供参考.

主要实现方式:
(1)通过自定义tableViewCell即可.
(2)Cell的形式可以换成气泡样式效果.

一.相关图形剖析
(1)普通cell显示样式

此处需注意上下两处的延长长度.

标注1: 上方黄色线条的view
标注2: 下方黄色线条的view
标注3: 中间黄色圆点
标注4: 其它地方自定义即可

时间线cell.png
(2)气泡cell显示样式

增加背景ImageView显示气泡图片.

关于气泡图片:
1.如果对Demo中图片不满意,可以自行使用Sketch进行创建.
标红区域是需要用到的"剪刀"与"组合"工具.

SketchBubble.png

2.此处需注意气泡图片的拉伸效果.
这里我使用的方法是使用Xcode的Asset Catalog的Slicing.
好处是:不需代码去拉伸图片,Xcode会自动识别图片的圆角.
使用方法:

Slicing.png

点击ShowSlicing可以调整拉伸区域.

ShowSlicing.png

关于图片拉伸的几种方法,查看此链接即可.

二.主要代码

(1)判断完成情况设置颜色即可.

if (model.isFinsish == 0) {
    self.FinisnLabel.text = @"未完成";
    self.cellImgView.backgroundColor = UnFinsishColor
    self.TopView.backgroundColor = UnFinsishColor;
    self.BottomView.backgroundColor = UnFinsishColor;
}else{
    self.FinisnLabel.text = @"已完成";
    self.cellImgView.backgroundColor = FinsishColor
    self.TopView.backgroundColor = FinsishColor;
    self.BottomView.backgroundColor = FinsishColor;}

(2)去掉第一个"上方view"与最后一个"下方view".

//定义方法传值当前row
- (void) bindDataWithTimeModel:(TimeModel *)model withRow:(NSInteger)row withArrCount:(NSInteger)count{ }    
//第一个去掉顶部view
if (row==0) self.TopView.hidden = YES;
//最后一个去掉底部view
if (row==count-1) self.BottomView.hidden = YES;
三.实现效果

(1)普通Cell样式显示效果

时间线进度.png

(2)Cell气泡样式显示效果

气泡cell.png
四.Demo地址

欢迎star : https://github.com/FTC-Chen/TimeLineCell

五.参考资料

1.http://www.jianshu.com/p/2504f2989556

有任何问题请私信或者留言.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,228评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,192评论 25 708
  • 序. 你的英文名换过几次,不过对于我来说,唤你Monica总是不会出错的,因为全世界也只有你能叫我Ross。 一....
    無茶君阅读 351评论 0 4
  • 学习是件不应该包含焦虑的事 它理应纯粹 有条不紊 该放弃的应该放弃。不应该任性吧!
    47Maggie阅读 185评论 0 0