iOS实例——依赖关系的分类展现列表

因为项目需要实现了一个分类查找的界面,多个类别/指标之间有多级依赖关系,效果如下:

20170419220453231.gif

整个demo使用MVC架构。

分三级,也就是分三类,用表头的view来展示,自定义实现一个表头的headerView类。

表头右边指标的箭头动画使用UIView动画实现,点击后会判断该类下是否有内容并且避免跳级展开显示,通过delegate回调刷新列表,但是为了完整显示箭头动画,这个回调操作使用GCD来延迟执行。收起时会收起所有小于等于该级别的分类列表

各个分类/指标使用一个自定义的Model来装载数据。每个Model有以下数据:

  • id
  • 标题
  • 是否是叶子节点(比如古文学就是个叶子节点,下面不会再有分类了,因此点击后没有效果了
  • 下属节点数组(比如文学下属数组包含中国文学和外国文学,中国文学下属数组包含古文学和小说文学,在点击一个节点后通过该数组获取其下属内容并显示)

采用这种结构是为了方便构建多级依赖关系的树状结构,同时用一个是否有叶子节点的属性,可以用于不一定都是满树的情况。

列表及一些逻辑放在Controller内,列表、delegate等,都比较常见。

具体可以直接看代码,注释很详细:https://github.com/Cloudox/OXClassifyTagDemo


查看作者首页

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

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,210评论 30 471
  • 年轻人有一种天然的优势,就是可以很快的看出一个人的小把戏,问题在他肯不肯揭穿 章三是个只会天天嚎嗓子的姑娘,明天要...
    眼镜框阅读 150评论 0 0
  • 人生这条路很漫长,高峰低谷也是必然,平平淡淡也不足为奇。无论何时身处何地,也必须保持清醒,保持冷静。 成功时,遍地...
    终南山下采薇人阅读 406评论 0 0
  • 如果说那么多年,有什么是莫小离一直念念不忘的,应该就是她的G先生了。G先生是莫小离一开始工作时的客户,一来二去的,...
    一株卷心菜阅读 255评论 0 1