Ios 如何创建内部通知(想想显示数字的红色圆圈)

Ios 如何创建内部通知(想想显示数字的红色圆圈),ios,xcode,notifications,Ios,Xcode,Notifications,许多应用程序都有一种视觉指示器,显示您何时有“新活动”或“新消息”。我不是在说推送通知(尽管它们看起来很相似)。为了更好地说明这一点,如果您使用FB应用程序,地球图标(通知)将显示一个红色圆圈,其中的数字表示自上次访问以来您可能收到的新消息数量 我想知道如何做到这一点,因为我能想到的唯一一件事是在图标上放置一个图像视图或文本字段,该图标将显示一个数字,表示用户可能拥有的新消息的数量。您必须使用一些黑客来实现这一点,因为iOS中的徽章本机只能添加到选项卡项中。有一个名为MKNumberBadgeV

许多应用程序都有一种视觉指示器,显示您何时有“新活动”或“新消息”。我不是在说推送通知(尽管它们看起来很相似)。为了更好地说明这一点,如果您使用FB应用程序,地球图标(通知)将显示一个红色圆圈,其中的数字表示自上次访问以来您可能收到的新消息数量


我想知道如何做到这一点,因为我能想到的唯一一件事是在图标上放置一个图像视图或文本字段,该图标将显示一个数字,表示用户可能拥有的新消息的数量。

您必须使用一些黑客来实现这一点,因为iOS中的徽章本机只能添加到选项卡项中。有一个名为MKNumberBadgeView的自定义类,允许您将其添加到导航栏

您可以按以下方式进行操作:

MKNumberBadgeView *badge=[[MKNumberBadgeView alloc]initWithFrame:CGRectMake(92, 0, 40, 40)];
badge.value=6;
[self.navigationController.navigationBar addSubview:badge];
几点:你必须在导航栏上调整徽章的位置,所以调整你的cgrectmake

我建议将徽章设置为属性,因为最终您会希望将其从视图中删除。在这种情况下,您可以从SuperView调用self.badge remove

这个类使用核心图形来绘制徽章,看起来非常漂亮

您可以在此处找到更多信息:


它被称为徽章。对于选项卡栏按钮项,可以使用badgeValue属性设置该值。对于其他内容,您可能需要添加一个图像视图。您能否澄清一下,您希望它出现在应用程序中的某个位置,还是与应用程序图标一起出现在主屏幕上?