DYBadge
DYBadge(用 Swift 编写)是一个 UILabel 子类,可以添加到任何 UIView 和其子类的子视图中(不包括 UIImageView)。如果在运行时badge的字符串值从 nil(或"nullish")更改为有效的字符串值,badge将以弹窗效果出现。如果它切换回"nullish"值,它将缩小并消失。该类还包括一个 UIButton 类函数(扩展)来创建一个具有图像和文本的按钮,该文本位于图像下方。 从 2.0 版本开始,已删除 xOffset 和 yOffset 值,以及 badgeFont、badgeColor 和 badgeTextColor。只需使用 UILabel 属性来设置这些值,例如 textColor、backgroundColor 等。(请勿直接使用 myBadge.text,而是使用 badgeString)。
示例
要查看示例项目,只需克隆仓库或下载 zip 文件。
功能
- 在代码中创建或从 Interface Builder 获取 UILabel,并更改其类为 DYBadge
- 创建一个包含图像和位于图像下方的按钮标题的 UIButton,并添加 DYBadge(见 DYBadge.swift 文件中的扩展)。
安装
建议使用 Cocoapods 或 Carthage 进行安装。
Carthage:只需将以下行添加到 Cartfile 中。
github "DominikButz/DYBadge" ~> 2.0
请查看下面的版本历史以获取当前版本。
之后,在您项目的根目录中运行 "carthage update DYBadge --platform iOS"。按照github上的carthage项目中的步骤操作(点击上面的carthage兼容徽章)。
或者,通过Cocoapods安装
target '[project name]' do pod 'DYBadge', '~> 2.0 end
确保将DYBadge导入到您的视图控制器子类中
import DYBadge
使用方法
请查看以下示例。
代码示例:创建带有DYBadge的按钮
@IBOutlet weak var firstButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
let frame = CGRect(x: self.firstButton.frame.size.width - 3.0, y: -5.0, width: 8.0, height: 5.0)
let firstBadge = DYBadge(frame: frame)
let font = UIFont(name: "HelveticaNeue-Bold", size: 10.0)!
firstBadge.font = font
firstBadge.backgroundColor = UIColor.red
firstBadge.textColor = UIColor.white
// set a start value if required
firstBadge.badgeString = "7"
self.firstButton.addSubview(firstBadge)
}
代码示例:创建带有图像和标题的按钮
@IBOutlet weak var secondButtonItem: UIBarButtonItem!
override func viewDidLoad() {
super.viewDidLoad()
let buttonFrame = CGRect(x: 0, y: 0, width: 25.0, height: 26.0)
let filterButton = UIButton.createImageTitleButton(image: imageLiteral(resourceName: "filterButton"), title: "Filter", font: font, frame: buttonFrame, tintColor: self.view.tintColor) // see extension
let secondBadge = DYBadge(frame: secondBadgeFrame)
secondBadge.backgroundColor = self.view.tintColor
secondBadge.textColor = UIColor.white
secondBadge.font = font
filterButton.addSubview(secondBadge)
self.secondButtonItem.customView = filterButton
}
Cocoapods 1.5错误解决方案。
可能会显示错误消息(无法加载可设计项...未找到合适的图像),并且某些故事板元素可能无法正确绘制。这不会阻止Xcode构建您的代码。为了删除这个讨厌的错误,将以下代码添加到podfile的末尾
// 解决Cocoapods v.1.5问题 #7606的工作区
post_install do |installer| installer.pods_project.build_configurations.each do |config| config.build_settings.delete('CODE_SIGNING_ALLOWED') config.build_settings.delete('CODE_SIGNING_REQUIRED') end end
变更日志
版本 2.0.4
进行了一些小的修正,设置更新为 Swift 5.0
版本 2.0.4
更改了动画函数 animateBadgeTransform 中的弹簧阻尼值。之前的设置将使设备或在模拟器上设置徽章值为空类型值时冻结(Xcode 10 / iOS 12)。
版本 2.0.3
重新添加了可设计、可检视的关键词。请参阅上面的错误解决方案。
版本 2.0.2
由于 Interface Builder 中的错误消息,移除了可设计、可检视关键词。
版本 2.0.1
在 podspec 文件中纠正了源文件路径。
版本 2.0
已删除 xOffset 和 yOffset 值,以及 badgeFont、badgeColor 和 badgeTextColor。只需使用 UILabel 属性(字体、颜色、背景颜色)来设置这些值。
版本 1.1.1
小规模构建修复。
版本 1.1
徽章现在默认放置在父视图的原点。相应调整您的 offsetX 和 offsetY 值 -参见上面的示例。
版本 1.0.3
为 carthage 修复的公共头部
版本 1.0.2
添加 podfile,更新 readme
版本 1.0.1
示例中缺少源文件 - 修复
版本 1.0
查看已弃用的项目 DYBadgeButton 以获取以前的版本信息。
作者
许可
DYBadge 以 MIT 许可协议提供。更多详细信息请查阅 LICENSE 文件。