自定义按钮设置BadgeNumber


TabbarButton.h

@interface TabbarButton : UIButton

@property (nonatomic, strong) UIButton *badgeValueView;

- (void)setItemBadgeNumber:(NSInteger)number;
- (CGRect)imageRectForContentRect:(CGRect)contentRect;
- (CGRect)titleRectForContentRect:(CGRect)contentRect;

@end
TabbarButton.m

@implementation TabbarButton

- (id)init
{
    if (self = [super init]) {
        [self createBadgeValueView];
    }
    return self;
}
#pragma mark - 创建BadgeValueView
- (void)createBadgeValueView
{
    CGFloat x = 39 - badgeValueViewWH + 5;
    CGFloat y = -5;
    _badgeValueView = [[UIButton alloc] initWithFrame:CGRectMake(x, y,badgeValueViewWH, badgeValueViewWH)];
    [_badgeValueView setBackgroundImage:[UIImage imageNamed:@"badgeBG"] forState:UIControlStateNormal];
    _badgeValueView.titleLabel.font = kFont12;
    [_badgeValueView setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
    _badgeValueView.hidden = YES;
    _badgeValueView.adjustsImageWhenHighlighted = NO;
    [self addSubview:_badgeValueView];
}

#pragma mark - 设置小红圈里的数字
- (void)setItemBadgeNumber:(NSInteger)number
{
    if (number != 0) {
        if (self.badgeValueView.hidden) {
            self.badgeValueView.hidden = NO;
        }
        [self.badgeValueView setTitle:[NSString stringWithFormat:@"%d",number] forState:(UIControlStateNormal)];

    }else{
        self.badgeValueView.hidden = YES;
    }
}
调用自定义按钮:
    //1.创建自定义的按钮
    TabbarButton *button = [[TabbarButton alloc]init];
    button.tag = index;
    CGFloat btnX = kScreenW / 4 * (index - 10) + 15;
    button.frame = CGRectMake(btnX, 5, 45, 45);

    //2.设置按钮图片和事件
    [button setImage:[UIImage imageNamed:normal] forState:UIControlStateNormal];
    [button setImage:[UIImage imageNamed:selected] forState:UIControlStateDisabled];
    [button addTarget:self action:@selector(changeViewController:) forControlEvents:UIControlEventTouchDown];

    //3.让图片在按钮内居中
    button.imageView.contentMode = UIViewContentModeCenter;

    //4.创建按钮下面的文本
    UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(btnX, 30, 45, 20)];
    label.tag = index + 10;
    label.text = title;
    label.font = kFont11;
    label.textColor = [UIColor grayColor];
    label.textAlignment = NSTextAlignmentCenter;
       //添加到自定义的tabbar
    [_myTabBar addSubview:label];
    [_myTabBar addSubview:button];

    //设置按钮的BadgeNumber    [button setItemBadgeNumber:1];
时间: 2024-10-16 05:11:54

自定义按钮设置BadgeNumber的相关文章

【iOS开发-8】UIButton类型属性简单归纳以及自定义按钮的设置

(1)UIButton类继承自UIControl,而UIControl继承自UIView,因为UIView就是个矩形区域,所以UIButton实例化的对象其实都是一个矩形,虽然有各种圆角.增加联系人.信息按钮等等,给它们加个背景它们就现形成矩形了,而且它们有个frame属性,这就是设置位置和矩形框的. (2)UIButton创建一个按钮不用实例化,也就是不用alloc和init,而是直接调用内置的几个工厂方法即可,这一点和UILabel *label1=[[UILabel alloc]init]

WP8_给图片、按钮设置自定义图片

工程目录下新建文件夹Images,将图片文件复制到Images文件夹里,本文以image1为例 1).在xaml里加背景图片 image图片: <Stretch="Fill" Source="Images/image1.png"  Name="image"/> Button背景图片:<Button Name="button1" >            <Button.Background>

在VS2005中设置WPF中自定义按钮的事件

原文:在VS2005中设置WPF中自定义按钮的事件 上篇讲了如何在Blend中绘制圆角矩形(http://blog.csdn.net/johnsuna/archive/2007/08/13/1740781.aspx),本篇继续下一步骤,如何自定义按钮的事件. (1)首先,在VS2005中打开上篇所建的项目(File - Open Project),找到LinearGradientButton.csproj(这是我这里的项目名称),打开之后,双击LinearGradientDemo.xaml.cs

IOS 自定义按钮(代码实现)+九宫格

在一些下载应用里整个页面都是按钮,有好多好多,但是仔细观察不难发现他们很有规律.就像下面一样?? 很有规律的排列在屏幕上,那么这需要我们怎么去做能. 正如标题,我们需要了解两个知识点,分别是自定义按钮和九宫格,九宫格是一种算法.在这里我给大家列出方法,并不过多解释,希望会对大家有帮助. 代码如下: 自定义按钮部分 // // CXButton.m // CX-自定义按钮(代码实现)+九宫格 // // Created by ma c on 16/3/18. // Copyright ? 2016

WPF学习笔记-用Expression Blend制作自定义按钮

1.从Blend工具箱中添加一个Button,按住shift,将尺寸调整为125*125; 2.右键点击此按钮,选择Edit control parts(template)>Edit a copy... 3.在弹出的Create style resource对话框中,修改新按钮样式的名称 4.在左侧的Object and timeline面板中选中ContentPresenter元素,按Ctrl+X将此标记临时保存到内存中 5.选中Chrome,按Delete键删除 6.选中Template,在

qt 5 小练习 纯代码制作自定义按钮

大家都知道QT设计师中直接拖动的按钮是长方形带有圆角的图案,那我们如何来设置自定义按钮呢 要设计一个按钮,我们必须要知道按钮有什么属性,首先,按钮必须有一个位置 第二,按钮必须有一个名称.还有当我们点击按钮时他会做出什么样的反应.所以我们定义两个类, 一个QRect _rect; (或者QPoint 更为贴切吧) 第二个是 QString _text; 既然有反应,那我们第一想到的就是鼠标事件,添加一个bool _press; 以及 void mousePressEvent(QMouseEven

IOS开发——UI进阶篇(十八)核心动画小例子,转盘(裁剪图片、自定义按钮、旋转)图片折叠、音量震动条、倒影、粒子效果

一.转盘(裁剪图片.自定义按钮.旋转) 1.裁剪图片 将一张大图片裁剪为多张 // CGImageCreateWithImageInRect:用来裁剪图片 // image:需要裁剪的图片 // rect:裁剪图片的尺寸,传递是像素 CGImageRef norImage = CGImageCreateWithImageInRect(norBigImage.CGImage, clipRect); 2.每次点击按钮立马变为选中状态,并且取消上次的按钮的选中状态 当然还要重写- (void)setH

android开发最常用例子整理----(1)自定义按钮实现

android开发最常用例子整理----(1)自定义按钮实现 一.Activity MainActivity.java源码: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }

c#自定义按钮

作为一名程序媛,很多时候是不是更愿意自定义控件呢,那就以自定义按钮为例,跟着小编来学习吧~ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace 界面 { publi