在UINavigationbar中显示类似计数器的通知徽章

Nir*_*att 1 iphone uinavigationbar uibarbuttonitem ios

我要求在iPhone导航栏中显示待处理通知的数量.外观应该与通知徽章的外观相似 - 但这些不是APNS通知.它们是从具有类似目的的私有服务器发送的.

我尝试UIBarButtonItem在我的位置添加一个右/左按钮(),UINavigationbar但它看起来外观很僵硬.我无法设置其宽度,字体等.请参阅我的代码:

  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;
Run Code Online (Sandbox Code Playgroud)

由于其他2项也添加到items数组中,因此navbar混乱.他们的字体,宽度等我无法玩,或者我不知道应该如何创建它们.

我的问题:

1)在导航栏右侧区域中容纳至少3个项目的正确方法是什么?我问这个是因为我没有找到一种方法来玩UIButtons我使用的宽度和字体.

2)如果我想为我的通知按钮设置自定义外观(就像通知徽章一样) - 是否有任何指示我如何制作它?使用哪种控件,如何设置其允许的框架和字体UINavigationBar

请帮忙.

Fel*_*lix 9

您需要使用创建UIBarButtonItem包含自定义视图的initWithCustomView.自定义视图可以是自定义UIButton,其中数字徽章作为子视图.使用此自定义视图,您还可以控制按钮的宽度.

没有公共API可以直接创建通知徽章.如果是标签栏项目,您可以使用该属性设置徽章badgeValue- 但不能使用UIBarButtonItem.在这里,您需要使用此开源控件:MKNumberBadgeView.

请注意,该属性rightBarButtonItems自iOS 5起可用.如果您只需要设置一个项目rightBarButtonItem.