BadgeControl
- language: Swift 5
- platform: ios
- device: iphone
- license: MIT
Tag
Download
Setup
Setup with CocoaPods (iOS 9+)
- If you are using CocoaPods add this text to your Podfile and run
pod install.
pod 'BadgeControl'
Add source (iOS 9+)
- Add BadgeController.swift, BadgeView.swift, BadgeCenterPosition.swift and BadgeAnimations.swift to your project.
Usage
Add
Simply attach BadgeController to your UIView (or its subclass).
import BadgeControl to your source code (unless you used the file setup method).Simply attach BadgeController to your UIView (or its subclass).
let badge = BadgeController(for: myUIView)
Add an empty badge and present it with animation.
badge.addOrReplaceCurrent(animated: true)
Add a badge with text and present it with animation.
badge.addOrReplaceCurrent(with: "1", animated: true)
Remove badge from its view.
badge.remove(animated: true)
Simply increment or decrement the value on your badge (if it is numeric) and present it with animation.
badge.increment(animated: true)
badge.decrement(animated: true)
You can also set
animateOnlyWhenBadgeIsNotYetPresent = true if you don't want animation when badge is already present on the view.Customization
You can customize badge's text font, background color, text color, border width, border color, size, center position and animation.
Text font, background color, text color, border width, border color and size
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
Center position
You can choose following center positions: upperLeftCorner, upperRightCorner, lowerLeftCorner, lowerRightCorner.
You can also choose custom position by calling .custom(x: Double, y: Double).
badge.centerPosition = .upperLeftCorner
badge.centerPosition = .custom(x: 10, y: 20)
Initialization
You can use this initalizer with default values:
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)


