RAOrderCell.m 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. //
  2. // RAOrderCell.m
  3. // Apex And Drivers
  4. //
  5. // Created by Jack on 2018/6/1.
  6. // Copyright © 2018年 USAI. All rights reserved.
  7. //
  8. #import "RAOrderCell.h"
  9. #import "RAHomeOrderModel.h"
  10. @interface RAOrderCell () <RAHomeOrderModelDelegate>
  11. @property (strong, nonatomic) IBOutlet UIView *contentContainer;
  12. @property (strong, nonatomic) IBOutlet UILabel *titleLabel;
  13. @property (strong, nonatomic) IBOutlet UILabel *orderNoLabel;
  14. @property (strong, nonatomic) IBOutlet UILabel *containerNoLabel;
  15. @property (strong, nonatomic) IBOutlet UILabel *dateLabel;
  16. @property (strong, nonatomic) IBOutlet UIImageView *markView;
  17. @property (strong, nonatomic) IBOutlet UIImageView *statusView;
  18. @property (strong, nonatomic) IBOutlet UILabel *orderType2Label;
  19. @property (strong, nonatomic) IBOutlet UILabel *indexLabel; ///< 索引,只有More Order存在
  20. @property (strong, nonatomic) IBOutlet UIImageView *nwflagView;///<New Order Flag,只有首页存在
  21. @property (nonatomic,strong) IBOutlet NSLayoutConstraint *titlTrailling;
  22. @property (nonatomic,strong) UIView *selectionView;
  23. @end
  24. @implementation RAOrderCell
  25. - (void)awakeFromNib {
  26. [super awakeFromNib];
  27. // Initialization code
  28. [self setOrderModel:nil];
  29. self.contentContainer.layer.cornerRadius = 10.0f;
  30. self.contentContainer.layer.masksToBounds = YES;
  31. self.contentContainer.layer.shadowColor = [UIColor lightGrayColor].CGColor;
  32. self.contentContainer.layer.borderColor = [UIColor lightGrayColor].CGColor;
  33. self.contentContainer.layer.borderWidth = 0.5f;
  34. self.selectedBackgroundView = self.selectionView;
  35. }
  36. - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
  37. [super setSelected:selected animated:animated];
  38. // Configure the view for the selected state
  39. }
  40. - (void)layoutSubviews {
  41. [super layoutSubviews];
  42. self.selectionView.frame = self.contentContainer.frame;
  43. }
  44. - (void)prepareForReuse {
  45. [super prepareForReuse];
  46. [self setOrderModel:nil];
  47. self.index = 0;
  48. }
  49. - (UIView *)selectionView {
  50. if (!_selectionView) {
  51. _selectionView = [UIView new];
  52. unsigned long color = strtoul([@"0xaad3df" UTF8String],0,16);
  53. _selectionView.backgroundColor = UIColorFromRGB(color);
  54. _selectionView.layer.cornerRadius = 10.0f;
  55. _selectionView.layer.masksToBounds = YES;
  56. _selectionView.layer.shadowColor = UIColorFromRGB(color).CGColor;
  57. _selectionView.layer.borderColor = UIColorFromRGB(color).CGColor;
  58. _selectionView.layer.borderWidth = 0.5f;
  59. }
  60. return _selectionView;
  61. }
  62. #pragma mark - Set
  63. - (void)setIndex:(NSUInteger)index {
  64. _index = index;
  65. self.indexLabel.text = [NSString stringWithFormat:@"%lu",index];
  66. }
  67. - (void)setOrderModel:(RAHomeOrderModel *)orderModel {
  68. _orderModel.delegate = nil;
  69. _orderModel = orderModel;
  70. _orderModel.delegate = self;
  71. [self refreshUI];
  72. }
  73. - (instancetype)setTitle:(NSString *)title {
  74. self.titleLabel.text = title;
  75. return self;
  76. }
  77. - (instancetype)setOrderNo:(NSString *)orderNo {
  78. self.orderNoLabel.text = orderNo;
  79. return self;
  80. }
  81. - (instancetype)setContainerNo:(NSString *)containerNo {
  82. self.containerNoLabel.text = containerNo;
  83. return self;
  84. }
  85. - (instancetype)setDate:(NSString *)date {
  86. self.dateLabel.text = date;
  87. return self;
  88. }
  89. - (instancetype)setOrderType2:(NSString *)orderType2 {
  90. self.orderType2Label.text = orderType2;
  91. return self;
  92. }
  93. - (instancetype)setBackendFlag:(BOOL)flag {
  94. self.markView.hidden = !flag;
  95. return self;
  96. }
  97. - (instancetype)setStatusIcon:(UIImage *)icon {
  98. self.statusView.image = icon;
  99. return self;
  100. }
  101. - (instancetype)setOrderTypeColor:(UIColor *)color {
  102. self.orderType2Label.textColor = color;
  103. return self;
  104. }
  105. #pragma mark - Model Delegate
  106. - (void)refreshUI {
  107. NSString *title = _orderModel.title;
  108. NSString *orderNo = _orderModel.orderNo;
  109. NSString *containerNo = _orderModel.containerNo;
  110. NSString *date = _orderModel.date;
  111. NSString *orderType = _orderModel.order_type;
  112. BOOL flag = _orderModel.backendFlag;
  113. UIImage *icon = _orderModel.icon;
  114. UIColor *orderTypeColor = _orderModel.orderTypeColor;
  115. [[[[[[[[self setTitle:title] setOrderNo:orderNo] setContainerNo:containerNo] setDate:date] setBackendFlag:flag] setOrderType2:orderType] setStatusIcon:icon] setOrderTypeColor:orderTypeColor];
  116. if (self.isHome) {
  117. BOOL hidden = _orderModel.status != RAOrderStatusNew;
  118. self.nwflagView.hidden = hidden;
  119. if (hidden) {
  120. self.titlTrailling.constant = 5;
  121. } else {
  122. self.titlTrailling.constant = 70.0f;
  123. }
  124. [self.contentContainer updateConstraints];
  125. }
  126. }
  127. @end