You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

52 lines
1.2 KiB

//
// UIBarButtonItem+Ext.swift
// BadgeAppearance
//
// Created by InKwon Devik Kim on 25/06/2019.
// Copyright © 2019 InKwon Devik Kim. All rights reserved.
//
import UIKit
// MARK: - FOR Badge
extension UIBarButtonItem {
/*
* Assign badge with only text.
*/
/// badge
///
/// - Parameter text: badge's text
@objc public func badge(text: String?) {
badge(text: text, appearance: BadgeAppearance())
}
/// badge
///
/// - Parameters:
/// - badgeText: badge's text
/// - appearance: badge's appearance
public func badge(text badgeText: String?, appearance: BadgeAppearance = BadgeAppearance()) {
if let view = badgeViewHolder {
getView(in: view).badge(text: badgeText, appearance: appearance)
} else {
NSLog("Attempted setting badge with value '\(badgeText ?? "nil")' on a nil UIBarButtonItem view.")
}
}
private var badgeViewHolder: UIView? {
return value(forKey: "view") as? UIView
}
private func getView(in holder: UIView) -> UIView {
for subItem in holder.subviews {
if "\(type(of: subItem))" == "_UIModernBarButton" {
return subItem
}
}
return holder
}
}