Advertisement
Guest User

Untitled

a guest
Oct 25th, 2016
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.06 KB | None | 0 0
  1. import UIKit
  2. import Material
  3.  
  4. class DealStatsBar: Bar {
  5.  
  6. var sold: Int = 0 {
  7. didSet {
  8. prepareSold(sold: sold)
  9. loadBar()
  10. }
  11. }
  12.  
  13. var originalPrice: Double = 0.0 {
  14. didSet {
  15. prepareOriginalPrice(price: originalPrice)
  16. loadBar()
  17. }
  18. }
  19.  
  20. var currentPrice: Double = 0.0 {
  21. didSet {
  22. prepareCurrentPrice(price: currentPrice)
  23. loadBar()
  24. }
  25. }
  26.  
  27. var frameHeight: CGFloat = 30.0 {
  28. didSet {
  29. frame.size.height = frameHeight
  30. loadBar()
  31. }
  32. }
  33.  
  34. var frameWidth: CGFloat = Device.width {
  35. didSet {
  36. frame.size.width = frameWidth
  37. loadBar()
  38. }
  39. }
  40.  
  41. private var soldLabel: UILabel!
  42. private var originalPriceLabel: UILabel!
  43. private var currentPriceLabel: UILabel!
  44.  
  45. override func prepare() {
  46. super.prepare()
  47. gridFactor = 25
  48. interimSpacePreset = .interimSpace1
  49. frameHeight = 30
  50.  
  51. backgroundColor = Color.grey.darken3
  52. }
  53.  
  54. private func prepareSold(sold: Int) {
  55. soldLabel = UILabel.create(sold: sold)
  56. }
  57.  
  58. private func prepareOriginalPrice(price: Double) {
  59. originalPriceLabel = UILabel.create(originalPrice: price)
  60. originalPriceLabel!.textAlignment = .right
  61. // originalPriceLabel!.frame.size.width = 50
  62. // originalPriceLabel!.grid.offset.columns = 3
  63. }
  64.  
  65. private func prepareCurrentPrice(price: Double) {
  66. currentPriceLabel = UILabel.create(currentPrice: price)
  67. currentPriceLabel!.textAlignment = .right
  68. // currentPriceLabel!.frame.size.width = 50
  69. }
  70.  
  71. private func loadBar() {
  72. var stack: [UILabel] = [UILabel]()
  73.  
  74. if let v = soldLabel {
  75. leftViews = [v]
  76. }
  77.  
  78. centerViews = []
  79.  
  80. if let v = originalPriceLabel {
  81. stack.append(v)
  82. }
  83. if let v = currentPriceLabel {
  84. stack.append(v)
  85. }
  86. rightViews = stack
  87. }
  88.  
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement