BadgeHub
为任何视图快速添加通知徽标图标的方法。
演示/示例
演示用
$ pod try BadgeHub
要运行示例项目,请克隆仓库,然后首先从示例目录运行pod install
$ cd Example
$ pod install
如果没有安装CocoaPods,可以使用以下命令安装:[sudo] gem install cocoapods
.
$ open BadgeHub.xcworkspace
需求
- iOS 10.0或更高版本
- Swift 5+
- Xcode 10+
安装
CocoaPods
BadgeHub可通过CocoaPods获取。要安装它,只需将以下行添加到您的Podfile中
pod 'BadgeHub'
手动安装
只需将 BadgeHub.swift
文件拖入到您的项目中。
用法
初始化。
let hub = BadgeHub(view: yourView) // Initially count set to 0
设置标签到按钮条目的初始化器。
let hub = BadgeHub(barButtonItem: UIBarButtonItem)
将计数值增加 1。
hub.increment()
增加一些整数值的计数值。
hub.increment(by: Int)
将计数值减少 1。
hub.decrement()
减少一些整数值的计数值。
hub.decrement(by: Int)
设置计数值为静态整数值。
hub.setCount(newCount: Int)
获取徽章当前计数值。
hub.getCurrentCount() // returns Int value of current count.
组合动作
hub.increment()
hub.pop()
hub.blink()
别忘了导入 BadgeHub
定制
更改通知圆环的颜色,同时更改计数标签的文本颜色。
hub.setCircleColor(_ circleColor: UIColor?, label labelColor: UIColor?)
更改圆环的边框颜色和边框宽度。
hub.setCircleBorderColor(_ color: UIColor?, borderWidth width: CGFloat)
设置通知徽章圆环相对于视图的边框。
hub.setCircleAtFrame(_ frame: CGRect)
移动圆环(左右或上下)。
hub.moveCircleBy(x: CGFloat, y: CGFloat)
更改圆环的大小。设置比例因子为 1 时无效果。
hub.scaleCircleSize(by scale: CGFloat)
隐藏计数值(空徽章)。请注意,此方法仅用于隐藏计数值,而不是徽章。
hub.hideCount()
再次在徽章上显示计数值。
hub.showCount()
从视图中隐藏徽章。
hub.hide()
再次显示徽章。如果当前的徽章计数值 <= 0,徽章将保持隐藏状态。
hub.show()
设置可显示的最大计数值。此方法可以用于限制徽章上可设置的最大计数值。最大计数值的默认值为 100000
。如果当前计数值增加到超过最大计数值,徽章将显示为 500+
(如果最大计数值为 500)。
hub.setMaxCount(to: Int)
设置计数值标签的字体。
hub.setCountLabelFont(_ font: UIFont?)
获取当前设置的计数值标签字体。
hub.getCountLabelFont()
设置徽章的透明度。
hub.setAlpha(alpha: CGFloat)
动画
弹出和收起徽章。
hub.pop()
使徽章闪烁。
hub.blink()
类似于 macOS 桌面图标跳动的动画。
hub.bump()
故障排除
通知没有显示出来!
- 如果枢纽值小于1,圆圈就会隐藏。尝试调用
increment()
。 - 确保您设置的枢纽视图是可见的(例如,您是否调用了
self.view.addSubview(yourView)
?)。 - 确保您没有在任何地方调用过
hideCount()
。调用showCount()
来抵消这个操作。
即使将值设置为0,徽章也不会隐藏
- 请确保您是在正确的BadgeHub实例上设置零计数。
- 尝试在将计数设置为0后调用
checkZero()
方法。 - 通过调用
getCurrentCount()
方法验证当前计数是否 <= 0。 - 请注意,
hideCount()
方法仅用于隐藏计数,而不是徽章。要隐藏徽章,只需调用hide()
。
增加/减少操作不正常!
- 任何 < 1 的计数都不会显示出来。如果您需要帮助自定义此功能,请与我联系!
圆圈位于奇怪的位置
- 如果您想调整圆圈的大小,请使用
scaleCircleSize(by scale: CGFloat)
。0.5会得到一半的大小,2会得到双倍大小。 - 如果圆圈只是偏了几像素,请使用
moveCircleBy(x: CGFloat, y: CGFloat)
。这将根据指定的像素数移动圆圈。 - 如果您想手动设置圆圈,请调用
setCircleAtFrame(_ frame: CGRect)
并传入自己的 CGRect。
其他事情操作不正常
- 使用GitHub的问题报告器提交新的问题。
- 如果您认为您已经修复了它,请随意提交修复同样问题的拉取请求。
- 请通过以下电子邮件发给我: [email protected]。
作者
乔恩德拉·库马尔 |
买我一杯咖啡?
如果您喜欢我的工作,在这里买我一杯咖啡
许可证
BadgeHub 采用 MIT 许可协议。有关更多信息,请参阅 LICENSE 文件。