// // ScriptControllerIconView.swift // SBrowser // // Created by James Magahern on 7/24/20. // import UIKit class ScriptControllerIconView: UIButton { private let labelView = UILabel(frame: .zero) convenience init() { self.init(frame: .zero) addSubview(labelView) let image = UIImage(systemName: "shield") setImage(image, for: .normal) imageView?.contentMode = .scaleAspectFit labelView.backgroundColor = .systemRed labelView.textAlignment = .center labelView.layer.cornerRadius = 4.0 labelView.layer.masksToBounds = true labelView.font = .boldSystemFont(ofSize: 8) labelView.textColor = .white setBlockedScriptsNumber(0) } public func setBlockedScriptsNumber(_ num: Int) { if num > 0 { labelView.isHidden = false labelView.text = "\(num)" } else { labelView.isHidden = true } setNeedsLayout() } override func layoutSubviews() { super.layoutSubviews() labelView.sizeToFit() labelView.center = CGPoint(x: bounds.center.x + 10, y: bounds.center.y + 10) labelView.bounds = labelView.bounds.insetBy(dx: -3.0, dy: -2.0) } }