如何添加badgeview

首先我们需要用到JSBadgeView这个第三方库,在需要用到的类文件中导入;

然后我们需要给badge绑定一个数据,用来显示数字,我采用如下方法将值暂存,在需要显示时取出来;

NSUserDefaults *pref = [NSUserDefaults standardUserDefaults];

NSString *notCount = [pref stringForKey:@"notbadge"];取出值

notice.strNoticeCount += 1;新的值

int notSum = notCount.intValue + notice.strNoticeCount;新的加上旧的

NSString *notBadge = [NSString stringWithFormat:@"%d",notSum];

[pref setValue:notBadge forKey:@"notbadge"];再存入user

然后在- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath方法中,给需要用到的cell绑定;

if (tableView.tag == 100) {

if (arrayNotice.count>0) {

if (indexPath.row == 0) {

NSString *simpleTableIdentifier = @"NoticeCell";

MessageCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

UIImageView* imageView = (UIImageView*)[cell.contentView viewWithTag:100];找不到这个tag就会新建,找到了就沿用,节省内存

if (imageView == nil) {

imageView = [[UIImageView alloc]initWithFrame:CGRectMake(leftedge, topedge, CELL_HEIGHT -5, CELL_HEIGHT-5)];这个图是类似头像的,badge就绑定在这个图上,

[imageView setTag:100];

[cell.contentView addSubview:imageView];

JSBadgeView *badgeView =  [[JSBadgeView alloc] initWithParentView:imageView alignment:JSBadgeViewAlignmentTopRight];

[badgeView setTag:200];

在设置cell的方法中加上

JSBadgeView *badgeView = (JSBadgeView*)  [imageView viewWithTag:200];

NSUserDefaults *pref = [NSUserDefaults standardUserDefaults];

NSString *badgeCount = [pref stringForKey:@"notbadge"];

badgeView.badgeText = badgeCount;

if ([badgeView.badgeText isEqualToString:@"0"]) {

[badgeView setHidden:YES];

}

这样就可以显示了,

当我点进去是需要清空这个值并且隐藏,由于我是用的segue所以在- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

用identifier判断

else if( [segue.identifier isEqualToString:@"openNotice"]){

NSIndexPath *indexPath = [self.tableMessage indexPathForCell:(UITableViewCell *)sender];

NoticeViewController *noticeview = segue.destinationViewController;

MessageCell *cell =(MessageCell *) [self.tableMessage cellForRowAtIndexPath:indexPath];

JSBadgeView *badgeView = (JSBadgeView*) [cell.contentView viewWithTag:200];

badgeView.badgeText = @"0";

NSUserDefaults *pref = [NSUserDefaults standardUserDefaults];

[pref setValue:0 forKey:@"notbadge"];

if ([badgeView.badgeText isEqualToString:@"0"]) {

[badgeView setHidden:YES];

}

这样就可以了,当然如果别的方法中会改变这个badge的值也需要将第一个方法中的代码写进去,删除cell时也别忘记清空这个值,

如何添加badgeview

时间: 2024-11-01 23:19:14

如何添加badgeview的相关文章

badgeview 和 radiobutton结合使用导致点击无响应解决办法

如果不添加badgeview 点击是没有问题,如果添加了就点击不好使 可以添加透明得button 具体可以参考 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientatio

iOS开发——项目实战OC篇&amp;类QQ黏性按钮(封装)

类QQ粘性按钮(封装) 那个,先来说说原理吧: 这里原理就是,在界面设置两个控件一个按钮在上面,一个View在下面(同样大小),当我们拖动按钮的时候显示下面的View,view不移动,但是会根据按钮中心点和它的中心点的距离去等比例变化自己的半径,越远半径酒越小,最后就会消失,而我们这里吗最难的就是在变化的过程中去计算并且设置他们两个之间的区域并且填充.这里需要计算六个点的位置(根据勾股定理),然后根据两个控件同一边的位置的两个点去绘制一条曲线.拖动距离到达一定的时候就会使用动画(序列帧)去清楚界

高仿微信5.2.1主界面及消息提醒

好久没更新博客了,最近在做公司的项目,这也算是我接触的第一个正式项目.通过项目的检验,发现自己积累了一年的知识还是远远不够,想要提高,好的方法是 :项目+书+视频+博客.最重要一点:勤动手.最近发现了慕课网的视频,居然都是高清无码免费的!而且满满的干货!我用业余时间跟着视频中大神的讲解学习了不少知识,下面就将这些小demo与大家分享,当然,我做了一些优化,代码与视频中有些出入,但功能可以完全实现. 这是一个模仿5.2.1版本的显示界面,如下图所示: 功能及实现思路简介 主要功能很简单: 1.上面

xamarin.android 给View控件 添加数字提醒效果-BadgeView

本文代码从java项目移植到.net项目   java开源项目:https://github.com/jgilfelt/android-viewbadger using System; using System.Collections.Generic; using System.Linq; using System.Text; using Android.App; using Android.Content; using Android.OS; using Android.Runtime; us

Android 图标上面添加提醒使用开源UI类库 Viewbadger

Viewbadger 1.BadgeView主要是继承了TextView,所以实际上就是一个TextView,底层放了一个label,可以自定义背景图,自定义背景颜色,是否显示,显示进入的动画效果以及显示的位置等等 2.BadgeView是一个GitHub开源的项目,下载地址是:https://github.com/jgilfelt/android-viewbadger 3.这个开源项目引用的方法很简单把android-viewbadger.jar引入到项目中就可以直接使用了,它提供的Demo已

一个很好用的小控件----给所有view右上角添加数字(类似未读消息之类的)

下面这种效果: Badge 用法很简但 见下面的demo: /** * Created by Fangchao on 2015/2/25. */ @EActivity(R.layout.activity_usercenter) public class UserCenterActivity extends BaseActionBarActivity implements DataHelper.DataListener { @ViewById(R.id.person_detail_headImag

BadgeView的使用介绍

在现在大部分的信息发布类应用,都有这样的一个功能:当后台数据更新,比如有系统消息或者是用户间有互动的时候,通过在控件上显示一个小红点来提示用户有新的信息.一般来说,这种业务需求,我们可以在布局文件中隐藏一个小红点,然后当检测到有数据更新的时候,我们将隐藏的小红点显示即可.但是这种方案,存在一些弊端,比如使用不方便,需要在很多界面添加小红点的布局,而且使用起来不灵活. 今天这篇文章,给大家介绍一个开源第三方控件——BadgeView,来实现相同的功能,而且使用起来非常的方便,非常强大. 先看一下界

BadgeView新提示开源工具类

BadgeView是使用某个图标作为新功能的提醒,类似于收到短息后短信图标的右上方有信息数目或者其他的显示性提示.BadgeView很好的实现了这个功能,而且进行了拓展,可自定义位置和提示图标. 工具类源码如下: package cn.car273.widget; /* * BadgeView.java * BadgeView * * Copyright (c) 2012 Stefan Jauker. * https://github.com/kodex83/BadgeView * * Lice

Android 图标上面添加提醒(二)使用开源UI类库 Viewbadger

版权声明:本文为博主原创文章,未经博主允许不得转载. 上一篇讲到用canvas进行绘制得到对应最终的bitmap. 在实际应用中,我们除了给图标添加数字外,也有可能加一些红色方块之类的图标作为新功能的提醒. 那么有没有什么方法,很方便地给图标添加提醒icon或者数字呢? 有的,还是得借助于开源项目ViewBadger,这个是github上的地址: https://github.com/jgilfelt/android-viewbadger 还是先看下效果图: 其用法非常简单: 首先是添加数字: