树形红点系统

[TOC]

有些新消息是重要的,需要展示成数字;有些新消息不那么重要,需要展示成红点。比如,我收到了新评论,或收到了新的点赞,以数字表示比较合理;而对于一些系统发给我的系统消息,我希望它不会太干扰到我的视线,这时以比较轻的红点形式展示比较合理。 数字和红点是需要分级展示的。当有新消息到来时,用户可以从App首页(即第一级页面)出发,根据数字和红点提示,逐级深入到更深的页面,最终到达展示新消息的终端页面。 如果某一级的数字提示,在它更深一级的页面上包含多个数字提示,那么本级数字应该是更深一级页面的数字之和。 如果某一级的数字(红点)提示,在它更深一级的页面上既有数字也有红点,那么本级优先按数字展示;如果更深一级的页面上数字都被清掉了,只有红点了,那么本级才按照红点展示。

下面以微信的部分红点系统为例子

image-20181204152847947

采用“.”作为树形数据的分段关键字,比如 我->钱包->银行卡 这个路径可以使用 me.wallet.card表示

我这个tabbarItem监听路径 "me"

钱包这个cell监听路径“me.wallet”

银行卡这个路径监听"me.wallet.card"

后台下发银行卡这里给一个红点 那么我们就设置一个红点路径“me.wallet.card”,这时候会自动递归通知其父节点“me.wallet”和父父节点"me"

A->B: 吃饭了没?
# 可在文本中使用换行符\n
note right of B: B思考n秒\n如何回答
B--A: 吃过了。你咧?
A->>B: 吃过了,吃过了!

虚线框里面的叶子才是真实有数据的红点,其他节点只供监听

任何位置的红点都可以通过统计子树的所有叶子得到

Copyright © 413132340@qq.com 2020 all right reserved,powered by Gitbook该文章修订时间: 2020-11-30 07:49:29

results matching ""

    No results matching ""