BadgeControl
- 将 BadgeController附加到任何UIView的子类,并轻松控制徽章。
- 可以自定义徽章的大小、位置、背景颜色、文本颜色、边框宽度、边框颜色和动画。
设置
使用 CocoaPods(iOS 9及以后版本)设置
- 如果您正在使用 CocoaPods,请在 Podfile 中添加以下文本,并运行
pod install
。
pod 'BadgeControl'
添加源代码(iOS 9及更高版本)
使用方法
将import BadgeControl
添加到您的源代码中(除非您使用了文件设置方法)。
只需将BadgeController附加到您的UIView(或其子类)。
let badge = BadgeController(for: myUIView)
添加一个空徽章并使用动画将其显示出来。
badge.addOrReplaceCurrent(animated: true)
添加一个带文本的徽章并使用动画将其显示出来。
badge.addOrReplaceCurrent(with: "1", animated: true)
从视图中移除徽章。
badge.remove(animated: true)
简单地增加或减少徽章上的值(如果它是数字),并使用动画将其显示出来。
badge.increment(animated: true)
badge.decrement(animated: true)
如果您不希望徽章已存在于视图中时进行动画,可以将animateOnlyWhenBadgeIsNotYetPresent = true
设置为true。
自定义
您可以自定义徽章的文本字体、背景颜色、文本颜色、边框宽度、边框颜色、大小、居中位置和动画。
文字字体,背景色,文字颜色,边框宽度,边框颜色和大小
badge.badgeTextFont = UIFont.systemFont(ofSize: 15)
badge.badgeBackgroundColor = UIColor.blue
badge.badgeTextColor = UIColor.yellow
badge.borderWidth = 3 // in px
badge.borderColor = UIColor.black // black is default
badge.badgeHeight = 20 // badge will have height of 20px
中心位置
您可以选择以下中心位置:upperLeftCorner,upperRightCorner,lowerLeftCorner,lowerRightCorner。
您还可以通过调用.custom(x: Double, y: Double)来选择自定义位置。
badge.centerPosition = .upperLeftCorner
badge.centerPosition = .custom(x: 10, y: 20)
动画
您可以选择以下动画之一
默认动画
badge.animation = BadgeAnimations.default
左右动画
badge.animation = BadgeAnimations.leftRight
左右动画
badge.animation = BadgeAnimations.rightLeft
渐显动画
badge.animation = BadgeAnimations.fadeIn
滚动动画
badge.animation = BadgeAnimations.rolling
自定义
您也可以提供自己的类型为 (UIView)-> Void 的动画。
badge.animation = { badgeView in
...
}
初始化
您可以使用这个初始化器并使用默认值
public init(for view: UIView,
in centerPosition: BadgeCenterPosition = .upperRightCorner,
badgeBackgroundColor: UIColor = .red,
badgeTextColor: UIColor = .white,
badgeTextFont: UIFont? = nil,
borderWidth: CGFloat = 0.0,
borderColor: UIColor = .black,
animation: ((UIView) -> Void)? = BadgeAnimations.defaultAnimation,
badgeHeight: Int? = nil
animateOnlyWhenBadgeIsNotYetPresent: Bool = false)
许可
BadgeControl 采用 MIT 许可证 发布。
欢迎反馈
如果您发现了错误或想改进BadgeControl,欢迎创建问题。