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
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
|
|
}
|
|
|
|
|
|
}
|