将通知徽章添加到iOS中的导航栏

时间:2013-09-22 12:26:14

标签: ios objective-c uiview uilocalnotification badge

我正在尝试将徽章添加到我的iOS应用的导航栏,更准确地说是菜单按钮,它会触发我的侧边菜单。我正在使用此代码

// add badge to the menu button
if (!self.numberBadge) {
         self.numberBadge = [[MLPAccessoryBadgeEmboss alloc] initWithFrame:CGRectZero];
       }
          numberBadge.center = CGPointMake(30.0, 6);
          numberBadge.badgeMinimumSize = CGSizeMake(1.0, 1.0);
          numberBadge.backgroundColor = [UIColor redColor];
          numberBadge.shadowAlpha = 0.9;
          numberBadge.cornerRadius = 5.0f;
          numberBadge.strokeColor = [UIColor whiteColor];
          [self.navigationController.navigationBar addSubview:numberBadge];
          [numberBadge setTextWithIntegerValue:9]; 

结果,徽章显示如下:

the badge

现在我一直在尝试修改框架和徽章uiview的中心,但无论我做什么,它都会粘在导航栏的左上角。我目前无法移动它。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

看起来您的徽章始终位于导航栏中的(0,0)处。

我假设当你分配self.numberBadge时,你将它分配给一个名为numberBadge的实例变量,否则你将不得不使用self.numberBadge。

我会尝试这些事情:

  • 使用不是CGRectZero的框架创建视图,但是要放置徽章的框架。有时使用第0帧创建的视图的行为并不像我预期的那样。
  • 尝试在调用addSubview后移动徽章中心,以确保它不会弄乱你的框架。

如果它仍然不起作用,您可以尝试将徽章添加到普通UIView并检查它是否在那里工作吗?