在UINavigationbar中显示计数器等通知标志
我需要在iPhone导航栏中显示未决通知的数量。 外观应该像通知徽章的外观 – 但这些不是APNS通知。 他们是从私人服务器发送类似的目的。
我试图在我的UINavigationbar
添加一个右/左button( UIBarButtonItem
),但是它看起来好像非常僵硬。 我不能设置它的宽度,字体等。看我的代码:
self.notifButton = [[UIBarButtonItem alloc] initWithTitle:@"0" style: UIBarButtonItemStyleBordered target:self action:@selector(TouchNotif)]; NSMutableArray *items = [[NSMutableArray alloc] init]; [items addObject:self.notifButton]; self.navigationItem.rightBarButtonItems = items;
由于其他2个项目也添加到项目数组,navbar杂乱无章。 他们的字体,宽度等我不能玩,或者我不知道我应该如何创build它们。
我的问题:
1)在导航栏右侧区域至less容纳3个项目的正确方法是什么? 我问这是因为我没有find一种方式来使用我使用的UIButtons
宽度和字体。
2)如果我想为我的通知button自定义外观(就像通知徽章) – 有没有任何指针我怎么做? 要使用哪个控件,如何设置UINavigationBar
允许的框架和字体?
请帮忙。
您需要使用initWithCustomView
创build包含自定义视图的UIBarButtonItem
。 自定义视图可以是一个数字徽章作为子视图的自定义UIButton。 使用此自定义视图,您还可以控制button的宽度。
没有公共API直接创build通知徽章。 在标签栏项目的情况下,您可以使用属性badgeValue
设置一个徽章 – 但不能与UIBarButtonItem
。 在这里你需要使用这个开源的控制: MKNumberBadgeView 。
请注意,属性rightBarButtonItems
从iOS 5开始可用。如果您只需要一个项目,请设置rightBarButtonItem
。
UIButton * buttton = [UIButton buttonWithType:UIButtonTypeCustom]; [buttton setFrame:CGRectMake(285, 20, 20, 20)]; [buttton.layer setCornerRadius:10]; [buttton setTitle:@"23" forState:UIControlStateNormal]; [buttton.titleLabel setFont:[UIFont systemFontOfSize:12]]; [buttton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; [buttton setBackgroundColor:[UIColor whiteColor]]; [self.navigationController.view addSubview:buttton];
首先在navigationController中获取相应的barbuttonitem
let baritem = navigationItem.right/leftBarButtonItem baritem.badgeValue = "\(correspondingValues)"