ProgressBar Changes

This commit is contained in:
Panth Patel 2019-05-16 15:47:58 -04:00
parent 6cab25d384
commit d535e9190b
6 changed files with 0 additions and 523 deletions

View File

@ -1,53 +0,0 @@
//
// ProgressBar.swift
// MVMCoreUI
//
// Created by Panth Patel on 5/3/19.
// Copyright © 2019 Verizon Wireless. All rights reserved.
//
import Foundation
public class ProgressBar: UIProgressView {
public func styleprogessbar(json: [AnyHashable: Any]?) {
<<<<<<< HEAD
=======
>>>>>>> 2bd55296b8719159ed079c15651de2c59a687d6f
var barstyle = Bool()
var progresscolor = String()
var backgroundcolor = String()
let thickness = json?.floatFromStringForKey("thickness")
let percentage = json?.floatFromStringForKey("percent")
if let backgroundcolorUnwrapped = json?.optionalStringForKey("backgroundColor") {
backgroundcolor = backgroundcolorUnwrapped
}
if let progresscolorUnwrapped = json?.optionalStringForKey("progressColor") {
progresscolor = progresscolorUnwrapped
}
if let barStyleUnwrapped = json?["barStyle"] as? Bool {
barstyle = barStyleUnwrapped
}
progressTintColor = UIColor.mfGet(forHex: progresscolor)
trackTintColor = UIColor.mfGet(forHex: backgroundcolor)
progress = (percentage ?? Float(PaddingThree))/100
switch barstyle {
case true:
progressViewStyle = .bar
default:
layer.cornerRadius = CGFloat((thickness ?? Float(PaddingTwo))/2)
clipsToBounds = true
}
<<<<<<< HEAD
}
=======
}
>>>>>>> 2bd55296b8719159ed079c15651de2c59a687d6f
}

View File

@ -1,142 +0,0 @@
//
// ProgressBarView.swift
// MVMCoreUI
//
// Created by Panth Patel on 5/3/19.
// Copyright © 2019 Verizon Wireless. All rights reserved.
//
import UIKit
@objcMembers open class ProgressBarView: ViewConstrainingView {
var progress = ProgressBar()
var topleftlabel = Label()
var toprightlabel = Label()
var bottomleftlabel = Label()
var bottomrightlabel = Label()
var thickness: Float?
public init() {
super.init(frame: .zero)
}
public override init(frame: CGRect) {
super.init(frame: frame)
}
required public init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
open override func updateView(_ size: CGFloat) {
super.updateView(size)
}
open override func needsToBeConstrained() -> Bool {
return true
}
open override func setWithJSON(_ json: [AnyHashable: Any]?, delegateObject: DelegateObject?, additionalData: [AnyHashable: Any]?) {
super.setWithJSON(json, delegateObject: delegateObject, additionalData: additionalData)
progress.styleprogessbar(json: json)
let thickness = json?.floatFromStringForKey("thickness")
<<<<<<< HEAD
let topleftlabeljson = json?.optionalDictionaryForKey("label")
let toprightlabeljson = json?.optionalDictionaryForKey("toprightlabel")
let bottomleftlabeljson = json?.optionalDictionaryForKey("bottomleftlabel")
let bottomrightlabeljson = json?.optionalDictionaryForKey("bottomrightlabel")
topleftlabel.setWithJSON(topleftlabeljson, delegateObject: delegateObject, additionalData: additionalData)
toprightlabel.setWithJSON(toprightlabeljson, delegateObject: delegateObject, additionalData: additionalData)
bottomleftlabel.setWithJSON(bottomleftlabeljson, delegateObject: delegateObject, additionalData: additionalData)
bottomrightlabel.setWithJSON(bottomrightlabeljson, delegateObject: delegateObject, additionalData: additionalData)
=======
let textlabeljson = json?.optionalDictionaryForKey("label")
descriptionLabel.setWithJSON(textlabeljson, delegateObject: delegateObject, additionalData: additionalData)
>>>>>>> 2bd55296b8719159ed079c15651de2c59a687d6f
progress.heightAnchor.constraint(equalToConstant: CGFloat(thickness ?? Float(PaddingTwo))).isActive = true
}
override open func setupView() {
super.setupView()
<<<<<<< HEAD
addSubview(topleftlabel)
addSubview(toprightlabel)
addSubview(bottomleftlabel)
addSubview(bottomrightlabel)
=======
addSubview(descriptionLabel)
>>>>>>> 2bd55296b8719159ed079c15651de2c59a687d6f
addSubview(progress)
let vericalSpacing = MFStyler.defaultVerticalPaddingForApplicationWidth()
progress.translatesAutoresizingMaskIntoConstraints = false
<<<<<<< HEAD
topleftlabel.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true
topleftlabel.topAnchor.constraint(equalTo: self.topAnchor).isActive = true
let topleftconstarint = NSLayoutConstraint(item: topleftlabel, attribute: .width, relatedBy: .equal, toItem: self, attribute: .width, multiplier: 0.5, constant: 0.0)
topleftconstarint.priority = UILayoutPriority(rawValue: 100)
topleftconstarint.isActive = true
topleftlabel.setContentHuggingPriority(UILayoutPriority(801), for: .horizontal)
topleftlabel.setContentHuggingPriority(UILayoutPriority(801), for: .vertical)
NSLayoutConstraint(item: toprightlabel, attribute: .leading, relatedBy: .equal, toItem: topleftlabel, attribute: .trailing, multiplier: 1.0, constant: PaddingTwo).isActive = true
toprightlabel.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true
toprightlabel.topAnchor.constraint(equalTo: self.topAnchor).isActive = true
toprightlabel.textAlignment = .right
let toprightconstraint = NSLayoutConstraint(item: toprightlabel, attribute: .width, relatedBy: .equal, toItem: self, attribute: .width, multiplier: 0.5, constant: 0.0)
toprightconstraint.priority = UILayoutPriority(rawValue: 100)
toprightconstraint.isActive = true
toprightlabel.setContentHuggingPriority(UILayoutPriority(1000), for: .horizontal)
toprightlabel.setContentHuggingPriority(UILayoutPriority(802), for: .vertical)
let progressconstraintone = NSLayoutConstraint(item: progress, attribute: .top, relatedBy: .equal, toItem: topleftlabel, attribute: .bottom, multiplier: 1.0, constant: PaddingTwo)
progressconstraintone.priority = UILayoutPriority(rawValue: 700)
progressconstraintone.isActive = true
let progressconstrainttwo = NSLayoutConstraint(item: progress, attribute: .top, relatedBy: .greaterThanOrEqual, toItem: toprightlabel, attribute: .bottom, multiplier: 1.0, constant: PaddingTwo)
progressconstrainttwo.priority = UILayoutPriority(rawValue: 1000)
progressconstrainttwo.isActive = true
progress.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true
progress.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true
bottomleftlabel.topAnchor.constraint(equalTo: progress.bottomAnchor, constant: PaddingTwo).isActive = true
bottomleftlabel.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true
let bottomleftconstraint = NSLayoutConstraint(item: bottomleftlabel, attribute: .width, relatedBy: .equal, toItem: self, attribute: .width, multiplier: 0.5, constant: 0.0)
bottomleftconstraint.priority = UILayoutPriority(100)
bottomleftconstraint.isActive = true
bottomleftlabel.setContentHuggingPriority(UILayoutPriority(900), for: .horizontal)
bottomleftlabel.setContentHuggingPriority(UILayoutPriority(850), for: .vertical)
NSLayoutConstraint(item: bottomrightlabel, attribute: .leading, relatedBy: .equal, toItem: bottomleftlabel, attribute: .trailing, multiplier: 1.0, constant: PaddingTwo).isActive = true
bottomrightlabel.topAnchor.constraint(equalTo: progress.bottomAnchor, constant: PaddingTwo).isActive = true
bottomrightlabel.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true
let bottomrightconstraint = NSLayoutConstraint(item: bottomrightlabel, attribute: .width, relatedBy: .equal, toItem: self, attribute: .width, multiplier: 0.5, constant: 0.0)
bottomrightconstraint.priority = UILayoutPriority(100)
bottomrightconstraint.isActive = true
bottomrightlabel.textAlignment = .right
bottomrightlabel.setContentHuggingPriority(UILayoutPriority(1000), for: .horizontal)
bottomrightlabel.setContentHuggingPriority(UILayoutPriority(851), for: .vertical)
}
}
=======
descriptionLabel.translatesAutoresizingMaskIntoConstraints = false
descriptionLabel.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true
descriptionLabel.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true
descriptionLabel.topAnchor.constraint(equalTo: self.topAnchor).isActive = true
progress.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true
progress.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true
progress.topAnchor.constraint(equalTo: descriptionLabel.bottomAnchor, constant: vericalSpacing).isActive = true
progress.bottomAnchor.constraint(equalTo: self.bottomAnchor).isActive = true
}
}
>>>>>>> 2bd55296b8719159ed079c15651de2c59a687d6f

View File

@ -1,78 +0,0 @@
//
// ProgressBarView.swift
// MVMCoreUI
//
// Created by Panth Patel on 5/3/19.
// Copyright © 2019 Verizon Wireless. All rights reserved.
//
import UIKit
@objcMembers open class ProgressBarView: ViewConstrainingView {
var progress = ProgressBar()
var descriptionLabel = Label()
var thickness: Float?
public init() {
super.init(frame: .zero)
}
public override init(frame: CGRect) {
super.init(frame: frame)
}
required public init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
open override func updateView(_ size: CGFloat) {
super.updateView(size)
}
open override func needsToBeConstrained() -> Bool {
return true
}
open override func setWithJSON(_ json: [AnyHashable: Any]?, delegateObject: DelegateObject?, additionalData: [AnyHashable: Any]?) {
super.setWithJSON(json, delegateObject: delegateObject, additionalData: additionalData)
if let jsonUnwrapped = json as? Dictionary<String, Any> {
progress.styleprogessbar(json: jsonUnwrapped)
}
let textlabeljson = json!["label"] as! Dictionary<String,Any> //UILabel.init(frame: CGRect(x:0, y:0, width: 300, height: 300))
self.descriptionLabel.setWithJSON(textlabeljson, delegateObject: delegateObject, additionalData: additionalData)
thickness = Float(json!["thickness"] as! String)
// thickness = 20.0
}
override open func setupView() {
super.setupView()
translatesAutoresizingMaskIntoConstraints = false
addSubview(descriptionLabel)
addSubview(progress)
progress.translatesAutoresizingMaskIntoConstraints = false
descriptionLabel.translatesAutoresizingMaskIntoConstraints = false
let vericalSpacing = MFStyler.defaultVerticalPaddingForApplicationWidth()
descriptionLabel.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true
descriptionLabel.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true
descriptionLabel.topAnchor.constraint(equalTo: self.topAnchor).isActive = true
descriptionLabel.numberOfLines = 0
descriptionLabel.sizeToFit()
progress.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true
progress.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true
progress.heightAnchor.constraint(equalToConstant: 20).isActive = true
progress.topAnchor.constraint(equalTo: descriptionLabel.bottomAnchor, constant: vericalSpacing).isActive = true
progress.bottomAnchor.constraint(equalTo: self.bottomAnchor).isActive = true
}
}

View File

@ -1,115 +0,0 @@
//
// ProgressBarView.swift
// MVMCoreUI
//
// Created by Panth Patel on 5/3/19.
// Copyright © 2019 Verizon Wireless. All rights reserved.
//
import UIKit
@objcMembers open class ProgressBarView: ViewConstrainingView {
var progress = ProgressBar()
var topleftlabel = Label()
var toprightlabel = Label()
var bottomleftlabel = Label()
var bottomrightlabel = Label()
var thickness: Float?
public init() {
super.init(frame: .zero)
}
public override init(frame: CGRect) {
super.init(frame: frame)
}
required public init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
open override func updateView(_ size: CGFloat) {
super.updateView(size)
}
open override func needsToBeConstrained() -> Bool {
return true
}
open override func setWithJSON(_ json: [AnyHashable: Any]?, delegateObject: DelegateObject?, additionalData: [AnyHashable: Any]?) {
super.setWithJSON(json, delegateObject: delegateObject, additionalData: additionalData)
progress.styleprogessbar(json: json)
let thickness = json?.floatFromStringForKey("thickness")
let topleftlabeljson = json?.optionalDictionaryForKey("label")
let toprightlabeljson = json?.optionalDictionaryForKey("toprightlabel")
let bottomleftlabeljson = json?.optionalDictionaryForKey("bottomleftlabel")
let bottomrightlabeljson = json?.optionalDictionaryForKey("bottomrightlabel")
topleftlabel.setWithJSON(topleftlabeljson, delegateObject: delegateObject, additionalData: additionalData)
toprightlabel.setWithJSON(toprightlabeljson, delegateObject: delegateObject, additionalData: additionalData)
bottomleftlabel.setWithJSON(bottomleftlabeljson, delegateObject: delegateObject, additionalData: additionalData)
bottomrightlabel.setWithJSON(bottomrightlabeljson, delegateObject: delegateObject, additionalData: additionalData)
progress.heightAnchor.constraint(equalToConstant: CGFloat(thickness ?? Float(PaddingTwo))).isActive = true
}
override open func setupView() {
super.setupView()
addSubview(topleftlabel)
addSubview(toprightlabel)
addSubview(bottomleftlabel)
addSubview(bottomrightlabel)
addSubview(progress)
progress.translatesAutoresizingMaskIntoConstraints = false
topleftlabel.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true
topleftlabel.topAnchor.constraint(equalTo: self.topAnchor).isActive = true
let topleftconstarint = NSLayoutConstraint(item: topleftlabel, attribute: .width, relatedBy: .equal, toItem: self, attribute: .width, multiplier: 0.5, constant: 0.0)
topleftconstarint.priority = UILayoutPriority(rawValue: 100)
topleftconstarint.isActive = true
topleftlabel.setContentHuggingPriority(UILayoutPriority(801), for: .horizontal)
topleftlabel.setContentHuggingPriority(UILayoutPriority(801), for: .vertical)
NSLayoutConstraint(item: toprightlabel, attribute: .leading, relatedBy: .equal, toItem: topleftlabel, attribute: .trailing, multiplier: 1.0, constant: PaddingTwo).isActive = true
toprightlabel.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true
toprightlabel.topAnchor.constraint(equalTo: self.topAnchor).isActive = true
toprightlabel.textAlignment = .right
let toprightconstraint = NSLayoutConstraint(item: toprightlabel, attribute: .width, relatedBy: .equal, toItem: self, attribute: .width, multiplier: 0.5, constant: 0.0)
toprightconstraint.priority = UILayoutPriority(rawValue: 100)
toprightconstraint.isActive = true
toprightlabel.setContentHuggingPriority(UILayoutPriority(1000), for: .horizontal)
toprightlabel.setContentHuggingPriority(UILayoutPriority(802), for: .vertical)
let progressconstraintone = NSLayoutConstraint(item: progress, attribute: .top, relatedBy: .equal, toItem: topleftlabel, attribute: .bottom, multiplier: 1.0, constant: PaddingTwo)
progressconstraintone.priority = UILayoutPriority(rawValue: 700)
progressconstraintone.isActive = true
let progressconstrainttwo = NSLayoutConstraint(item: progress, attribute: .top, relatedBy: .greaterThanOrEqual, toItem: toprightlabel, attribute: .bottom, multiplier: 1.0, constant: PaddingTwo)
progressconstrainttwo.priority = UILayoutPriority(rawValue: 1000)
progressconstrainttwo.isActive = true
progress.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true
progress.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true
bottomleftlabel.topAnchor.constraint(equalTo: progress.bottomAnchor, constant: PaddingTwo).isActive = true
bottomleftlabel.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true
let bottomleftconstraint = NSLayoutConstraint(item: bottomleftlabel, attribute: .width, relatedBy: .equal, toItem: self, attribute: .width, multiplier: 0.5, constant: 0.0)
bottomleftconstraint.priority = UILayoutPriority(100)
bottomleftconstraint.isActive = true
bottomleftlabel.setContentHuggingPriority(UILayoutPriority(900), for: .horizontal)
bottomleftlabel.setContentHuggingPriority(UILayoutPriority(850), for: .vertical)
NSLayoutConstraint(item: bottomrightlabel, attribute: .leading, relatedBy: .equal, toItem: bottomleftlabel, attribute: .trailing, multiplier: 1.0, constant: PaddingTwo).isActive = true
bottomrightlabel.topAnchor.constraint(equalTo: progress.bottomAnchor, constant: PaddingTwo).isActive = true
bottomrightlabel.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true
let bottomrightconstraint = NSLayoutConstraint(item: bottomrightlabel, attribute: .width, relatedBy: .equal, toItem: self, attribute: .width, multiplier: 0.5, constant: 0.0)
bottomrightconstraint.priority = UILayoutPriority(100)
bottomrightconstraint.isActive = true
bottomrightlabel.textAlignment = .right
bottomrightlabel.setContentHuggingPriority(UILayoutPriority(1000), for: .horizontal)
bottomrightlabel.setContentHuggingPriority(UILayoutPriority(851), for: .vertical)
}
}

View File

@ -1,67 +0,0 @@
//
// ProgressBarView.swift
// MVMCoreUI
//
// Created by Panth Patel on 5/3/19.
// Copyright © 2019 Verizon Wireless. All rights reserved.
//
import UIKit
@objcMembers open class ProgressBarView: ViewConstrainingView {
var progress = ProgressBar()
var descriptionLabel = Label()
var thickness: Float?
public init() {
super.init(frame: .zero)
}
public override init(frame: CGRect) {
super.init(frame: frame)
}
required public init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
open override func updateView(_ size: CGFloat) {
super.updateView(size)
}
open override func needsToBeConstrained() -> Bool {
return true
}
open override func setWithJSON(_ json: [AnyHashable: Any]?, delegateObject: DelegateObject?, additionalData: [AnyHashable: Any]?) {
super.setWithJSON(json, delegateObject: delegateObject, additionalData: additionalData)
progress.styleprogessbar(json: json)
let thickness = json?.floatFromStringForKey("thickness")
let textlabeljson = json?.optionalDictionaryForKey("label")
descriptionLabel.setWithJSON(textlabeljson, delegateObject: delegateObject, additionalData: additionalData)
progress.heightAnchor.constraint(equalToConstant: CGFloat(thickness ?? Float(PaddingTwo))).isActive = true
}
override open func setupView() {
super.setupView()
addSubview(descriptionLabel)
addSubview(progress)
let vericalSpacing = MFStyler.defaultVerticalPaddingForApplicationWidth()
progress.translatesAutoresizingMaskIntoConstraints = false
descriptionLabel.translatesAutoresizingMaskIntoConstraints = false
descriptionLabel.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true
descriptionLabel.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true
descriptionLabel.topAnchor.constraint(equalTo: self.topAnchor).isActive = true
progress.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true
progress.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true
progress.topAnchor.constraint(equalTo: descriptionLabel.bottomAnchor, constant: vericalSpacing).isActive = true
progress.bottomAnchor.constraint(equalTo: self.bottomAnchor).isActive = true
}
}

View File

@ -1,68 +0,0 @@
//
// ProgressBar.swift
// MVMCoreUI
//
// Created by Panth Patel on 5/3/19.
// Copyright © 2019 Verizon Wireless. All rights reserved.
//
import Foundation
public class ProgressBar: UIProgressView {
public func styleprogessbar(json: Dictionary<String,Any>) -> UIProgressView {
let percentage = Float(json["percent"] as! String)
let barstyle = json["barstyle"] as! Bool
let progresscolor = json["progresscolor"] as! String
let backgroundcolor = json["backgroundcolor"] as! String
self.progressTintColor = UIColor.init(hex: progresscolor)
self.trackTintColor = UIColor.init(hex: backgroundcolor)
self.progress = percentage!/100
self.frame.size.width = 200
switch barstyle {
case true:
self.progressViewStyle = .bar
default:
self.progressViewStyle = .default
}
return self
}
}
extension UIColor {
public convenience init?(hex: String) {
let r, g, b, a: CGFloat
if hex.hasPrefix("#") {
let start = hex.index(hex.startIndex, offsetBy: 1)
let hexColor = String(hex[start...])
if hexColor.count == 8 {
let scanner = Scanner(string: hexColor)
var hexNumber: UInt64 = 0
if scanner.scanHexInt64(&hexNumber) {
r = CGFloat((hexNumber & 0xff000000) >> 24) / 255
g = CGFloat((hexNumber & 0x00ff0000) >> 16) / 255
b = CGFloat((hexNumber & 0x0000ff00) >> 8) / 255
a = CGFloat(hexNumber & 0x000000ff) / 255
self.init(red: r, green: g, blue: b, alpha: a)
return
}
}
}
return nil
}
}