Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import UIKit
- import Material
- class DealStatsBar: Bar {
- var sold: Int = 0 {
- didSet {
- prepareSold(sold: sold)
- loadBar()
- }
- }
- var originalPrice: Double = 0.0 {
- didSet {
- prepareOriginalPrice(price: originalPrice)
- loadBar()
- }
- }
- var currentPrice: Double = 0.0 {
- didSet {
- prepareCurrentPrice(price: currentPrice)
- loadBar()
- }
- }
- var frameHeight: CGFloat = 30.0 {
- didSet {
- frame.size.height = frameHeight
- loadBar()
- }
- }
- var frameWidth: CGFloat = Device.width {
- didSet {
- frame.size.width = frameWidth
- loadBar()
- }
- }
- private var soldLabel: UILabel!
- private var originalPriceLabel: UILabel!
- private var currentPriceLabel: UILabel!
- override func prepare() {
- super.prepare()
- gridFactor = 25
- interimSpacePreset = .interimSpace1
- frameHeight = 30
- backgroundColor = Color.grey.darken3
- }
- private func prepareSold(sold: Int) {
- soldLabel = UILabel.create(sold: sold)
- }
- private func prepareOriginalPrice(price: Double) {
- originalPriceLabel = UILabel.create(originalPrice: price)
- originalPriceLabel!.textAlignment = .right
- // originalPriceLabel!.frame.size.width = 50
- // originalPriceLabel!.grid.offset.columns = 3
- }
- private func prepareCurrentPrice(price: Double) {
- currentPriceLabel = UILabel.create(currentPrice: price)
- currentPriceLabel!.textAlignment = .right
- // currentPriceLabel!.frame.size.width = 50
- }
- private func loadBar() {
- var stack: [UILabel] = [UILabel]()
- if let v = soldLabel {
- leftViews = [v]
- }
- centerViews = []
- if let v = originalPriceLabel {
- stack.append(v)
- }
- if let v = currentPriceLabel {
- stack.append(v)
- }
- rightViews = stack
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement