如何在标准UIButton上添加徽章?

69

如何在一个普通的UIButton上添加一个标准的徽章?

如果半原生支持不可行,那么最简单的方法是什么?

示例图像:

iPhone UI按钮


记录一下..截至2013年11月,最新支持的软件包似乎是:https://github.com/jessesquires/JSCustomBadge 它完美地运行,没有任何问题。 - Fattie
刚刚发布了那条评论后,我意识到JSCustomBadge似乎只能在Xcode5中使用,而不是Xcode4。 "CustomBadge" 在Xcode4中完美运行 https://github.com/ckteebe/CustomBadge 两者在Xcode5中似乎都能完美运行。希望对某些人有所帮助。 - Fattie
1
我刚刚发布了一个用Swift编写的CocoaPod,适用于iOS 8,可以提供这个功能。它仍处于开发的早期阶段,但我很想听听一些反馈意见。请访问https://github.com/johncosch/TIPBadgeManager查看。 - John Cosch
6个回答

78

这里有一个由Sascha Paulus创建的非常好的类,名为CustomBadge,它使用核心图形构建和呈现自定义徽章。它们只是UIView子类,因此您可以像使用其他UIView子类一样使用它们的框架进行布局。

我已经多次使用过这个库,并且总是对结果感到满意。灵活易用。完全推荐。


7
还有一个用于自定义徽章的可可豆荚 - http://cocoadocs.org/docsets/CustomBadge/2.0/Classes/CustomBadge.html - Nate Flink

7

3

2

我们在Nimbus中有一个徽章视图,非常易于使用并且文档完备:

NimbusBadge


1

我不知道这个功能是否可以直接实现,而且我真的怀疑苹果是否将其构建到SDK中。

无论如何,您可以创建一个自定义视图,并在其中添加一个按钮,将徽章的背景作为UIImageView添加,并放置一个标签以容纳徽章计数。

这是一个快速解决方案,更好的方法可能是创建UIButton的自定义子类,并将您的徽章内容作为子视图添加。


4
不要继承UIButton类——这样做效果不佳,即你只有一个用于构建的方便类方法。另外,按钮不需要“容器”视图。 - Eiko

1

我会像@Björn Kaiser一样采用类似的方法:按照您喜欢的方式使用按钮,然后将带有徽章的自定义视图作为其子视图添加 - 我已经这样做了,效果很好。

至于视图,您可以根据自己的喜好进行绘制。您可以手动绘制它,也可以使用CoreAnimation让它成为主要部分,即theBadge.layer.cornerRadius = ...;以使其呈现圆形,使用drawRect:绘制文本/数字或将其作为标签添加等。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接