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