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

时间:2011-01-18 09:55:59

标签: iphone cocoa-touch ios badge

是否可以为标准UIButton添加标准徽章?

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

示例图片:

An iPhone UI button

6 个答案:

答案 0 :(得分:78)

这是Sascha Paulus称为CustomBadge的非常好的NICE类,它使用Core Graphics构建和呈现自定义徽章。它们只是UIView的子类,因此您可以像使用任何其他UIView子类一样使用它们来构建它们。

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

答案 1 :(得分:7)

您可以在此处查看以下几个选项:CocoaControls Badges

答案 2 :(得分:3)

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

这是另一个实现此视图的类,具有与Apple相同的外观和感觉,同时还允许您自定义它:https://github.com/JaviSoto/JSBadgeView。关于这一点的好处是,它允许您在其中一个角落自动相对于另一个视图定位徽章。

答案 3 :(得分:2)

我们在Nimbus中有一个徽章视图,它非常易于使用且记录良好:

NimbusBadge

答案 4 :(得分:1)

我不知道这是如何开箱即用的,我真的怀疑Apple是否将其构建到SDK中。

无论如何,您可以创建一个带有按钮的自定义视图,将徽章的背景添加为UIImageView,并在其上放置一个标签以保存徽章数。

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

答案 5 :(得分:1)

我和@BjörnKaiser一样:按照你喜欢的方式使用按钮,然后添加一个带有徽章的自定义视图作为子视图 - 我已经完成了它并且效果很好。

对于视图,您可以根据需要绘制它。您可以手动绘制它或使用CoreAnimation并让它成为主要部分,即theBadge.layer.cornerRadius = ...;赋予它圆形,在drawRect:中绘制文本/数字或将其添加为标签等。