0

我正在尝试将徽章添加到我的 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]; 

结果,徽章显示如下:

徽章

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

有什么建议么?

4

1 回答 1

0

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

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

我会尝试这些事情:

  • 使用不是 CGRectZero 的框架创建视图,而是要放置徽章的框架。有时,使用零帧创建的视图并没有像我预期的那样表现。
  • 尝试在调用 addSubview 后移动徽章中心,以确保它不会弄乱您的框架。

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

于 2013-09-22T17:30:07.863 回答