我如何添加一个标准的UIButton徽章?

是否可以添加一个标准的徽章到标准的UIButton

如果它本身不是半支持的,那么最简单的方法是什么呢?

示例图像:

一个iPhone UI按钮

这是Sascha Paulus非常好的一个名为CustomBadge的类 ,它使用Core Graphics构build和渲染自定义徽章。 他们只是UIView子类,所以你就像使用其他的UIView子类一样使用它们的框架。

我已经多次使用这个图书馆,总是对结果感到满意。 灵活,易于使用。 完全推荐它。

你可以在这里检查几个选项: CocoaControls徽章

苹果使用的类是_UIBadgeViewhttps://github.com/nst/iOS-Runtime-Headers/blob/master/Frameworks/UIKit.framework/_UIBadgeView.h ),但是当然,这个类是私有的(请注意下划线),没有logging。

下面是另一个实现这个视图的类,其外观与Apple的相同,同时也允许你自定义它: https : //github.com/JaviSoto/JSBadgeView 。 关于这个的最好的事情是,它可以让你自动地将徽章相对于另一个视图定位在它的一个angular落。

我们在Nimbus有一个徽章视图,它非常容易使用,并且有很好的文档logging:

NimbusBadge

我不知道这是怎么做的,我真的怀疑,苹果公司build立到SDK。

无论如何,你可以用一个button创build一个自定义的视图,将徽章的背景添加为UIImageView,并在其上放置一个标签来保存徽章数量。

这是一个快速的解决scheme,它可能会更好地创build一个UIButton的自定义子类,并添加您的徽章的东西作为子视图

我会采用类似于@BjörnKaiser的方式:按照您喜欢的方式使用该button,然后添加一个自定义视图,并将该徽章作为子视图添加到该视图中 – 我已经完成并且运行良好。

至于视图,你可以随心所欲地绘制。 你可以手动绘制或使用CoreAnimation,并让它成为主要部分,即theBadge.layer.cornerRadius = ...; 给它一个圆形,在drawRect:绘制文本/数字drawRect:或者将它作为标签添加