是否可以为标准UIButton
添加标准徽章?
如果它不是半原生支持的,那么最简单的方法是什么?
示例图片:
答案 0 :(得分:78)
这是Sascha Paulus称为CustomBadge的非常好的NICE类,它使用Core Graphics构建和呈现自定义徽章。它们只是UIView的子类,因此您可以像使用任何其他UIView子类一样使用它们来构建它们。
我多次使用过这个库,并且总是对结果很满意。灵活,易用。完全推荐它。
答案 1 :(得分:7)
您可以在此处查看以下几个选项:CocoaControls Badges
答案 2 :(得分:3)
Apple使用的类是_UIBadgeView
(https://github.com/nst/iOS-Runtime-Headers/blob/master/Frameworks/UIKit.framework/_UIBadgeView.h),但当然,这个类是私有的(注意下划线),没有记录。
这是另一个实现此视图的类,具有与Apple相同的外观和感觉,同时还允许您自定义它:https://github.com/JaviSoto/JSBadgeView。关于这一点的好处是,它允许您在其中一个角落自动相对于另一个视图定位徽章。
答案 3 :(得分:2)
我们在Nimbus中有一个徽章视图,它非常易于使用且记录良好:
答案 4 :(得分:1)
我不知道这是如何开箱即用的,我真的怀疑Apple是否将其构建到SDK中。
无论如何,您可以创建一个带有按钮的自定义视图,将徽章的背景添加为UIImageView,并在其上放置一个标签以保存徽章数。
这是一个快速解决方案,创建UIButton
的自定义子类并将徽章内容添加为子视图可能更好
答案 5 :(得分:1)
我和@BjörnKaiser一样:按照你喜欢的方式使用按钮,然后添加一个带有徽章的自定义视图作为子视图 - 我已经完成了它并且效果很好。
对于视图,您可以根据需要绘制它。您可以手动绘制它或使用CoreAnimation并让它成为主要部分,即theBadge.layer.cornerRadius = ...;
赋予它圆形,在drawRect:
中绘制文本/数字或将其添加为标签等。