iOS-未读消息的小红点展示
来源:互联网 发布:网络大电影 编辑:程序博客网 时间:2024/06/07 22:38
问题描述:
(1)进入首页后,登录状态下的账户tabbar上会展示小红点儿
(2)进入账户页后,消息图标上也有小红点儿
(3)情况一:只要有未读消息就展示红点
(4)情况二:只要点击进入消息页面,则返回后红点儿消失(尽管还有未读消息)
1.只要有未读消息就展示红点
(1)首页接口增加是否有未读消息字段:isRead_Home
let item = self.tabBarController?.tabBar.items?[2]if isRead_Home == "1"{//有未读消息 item?.image = UIImage(named:"账户红点.png")?.withRenderingMode(UIImageRenderingMode.alwaysOriginal)}else{//未读消息 item?.image = UIImage(named:"账户无红点.png")?.withRenderingMode(UIImageRenderingMode.alwaysOriginal) }
(2)账户接口增加是否有未读消息字段:isRead_Mine
let item = self.tabBarController?.tabBar.items?[2]if isRead_Mine == "1"{//有未读消息 self.redImg?.isHidden = false //红点图标img}else{//未读消息 item?.image = UIImage(named:"账户无红点.png")?.withRenderingMode(UIImageRenderingMode.alwaysOriginal)}
2.只要点击进入消息页面,则返回后红点儿消失(尽管还有未读消息)
(1)首页接口增加最新消息:logId + 是否有未读消息字段:isRead_Home,且本地保存logId_Local,初始值为0
账户红点的展示与否:
let logId_Local = UserDefaults.standard.integer(forKey: logId_Key)let item = self.tabBarController?.tabBar.items?[2]if logId_Local == 0 && isRead_Home == "0"{//有未读消息 item?.image = UIImage(named:"账户红点.png")?.withRenderingMode(UIImageRenderingMode.alwaysOriginal)}else if logId_Local == logId{//无未读消息 item?.image = UIImage(named:"账户无红点.png")?.withRenderingMode(UIImageRenderingMode.alwaysOriginal)}else{//有未读消息 item?.image = UIImage(named:"账户红点.png")?.withRenderingMode(UIImageRenderingMode.alwaysOriginal)}
(2)账户也增加跟首页同样的字段,且在点击消息页面后,将logId_Local重新赋值
let logId_Local = UserDefaults.standard.integer(forKey: logId_Key)let item = self.tabBarController?.tabBar.items?[2]if logId_Local == 0 && isRead_Mine == "0"{//有未读消息 self.redImg?.isHidden = false}else if logId_Local == self.logId {//无未读消息 self.redImg?.isHidden = true item?.image = UIImage(named:"账户点击前.png")?.withRenderingMode(UIImageRenderingMode.alwaysOriginal)}else{//有未读消息 self.redImg?.isHidden = false}
点击消息按钮:
func enterMessage(){//消息 //更新本地存储状态: UserDefaults.standard.setValue(logId, forKey: logId_Key) UserDefaults.standard.synchronize() //跳转消息界面: let vc = MessageViewController(); vc.hidesBottomBarWhenPushed = true; self.navigationController?.pushViewController(vc, animated: true) }
3.技术说明:
(1)tabbar上的红点儿展示:
**获取账户tabbar let item = self.tabBarController?.tabBar.items?[2] **切换图片 item?.image = UIImage(named:"账户红点.png")?.withRenderingMode(UIImageRenderingMode.alwaysOriginal) item?.image = UIImage(named:"账户无红点儿.png")?.withRenderingMode(UIImageRenderingMode.alwaysOriginal) **系统自带: item?.badgeValue = "2"//显示消息条数为 2
(2)userDefaults保存“logId
a:key值的定义需添加手机号,用以区分用户:let logId_Key = "logId_Local" + self.teleNumb:为了永久保存,故退出登录时不移除logId_Key
阅读全文
0 0
- iOS-未读消息的小红点展示
- 未读消息小红点(badgeview)
- 未读消息的红点显示
- iOS 实现QQ未读消息数量弹性按钮动画
- ios 设置 applicationIconBadgeNumber(多少消息未读)
- iOS使用推送解决未读消息实时刷新
- IOS设置app图标未读消息个数
- css3之未读消息小红点
- iOS页面消息角标展示数字
- 未读消息
- 未读消息提醒
- 仿qq未读消息
- 未读消息橡皮动画
- 右上角未读消息数
- 小程序-未读消息
- 自定义未读消息提示
- 仿QQ未读消息
- 消息未读通知的条数(第三方JSBadgeView)
- nginx启动脚本
- qt窗口坐标
- UWP(2) How to access the Sqlite db(如何访问Sqlite数据库文件)
- srpingBoot +mybatis 出现不能批量插入的问题,解决方法
- CodeForces 455A:Boredom (动态规划)
- iOS-未读消息的小红点展示
- C++对C语言的扩展(二)
- Redis发布与订阅以及日常存取源码分享
- CSS中可以和不可以继承的属性
- Linux 搭建redis
- spring boot 拦截器 注入dao 操作数据库时dao 为null
- Linux机器间同步文件脚本
- java学习初探2之语言基础(2)
- 卡尔曼滤波学习(一)