ASGiftCardAvailabelCell.m 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. //
  2. // ASGiftCardAvailabelCell.m
  3. // Asteria
  4. //
  5. // Created by iOS on 2023/11/2.
  6. //
  7. #import "ASGiftCardAvailabelCell.h"
  8. @interface ASGiftCardAvailabelCell ()
  9. @property (nonatomic, assign) ASGiftCardState state;
  10. @property (nonatomic, strong) UIView *cardBgV;
  11. @property (nonatomic, strong) UIImageView *bgImgV;
  12. @property (nonatomic, strong) UIButton *cardIcon;
  13. @property (nonatomic, strong) UILabel *priceLb;
  14. @property (nonatomic, strong) UILabel *desLb;
  15. @property (nonatomic, strong) UILabel *timeLb;
  16. @property (nonatomic, strong) UIImageView *tagImgV;
  17. @end
  18. @implementation ASGiftCardAvailabelCell
  19. - (void)setState:(ASGiftCardState)state {
  20. switch (state) {
  21. case ASGiftCardStateUsed:
  22. _priceLb.textColor = _DBDBDB;
  23. _cardIcon.selected = true;
  24. _timeLb.hidden = true;
  25. _desLb.textColor = _DBDBDB;
  26. _bgImgV.hidden = true;
  27. _tagImgV.hidden = false;
  28. _tagImgV.image = [UIImage imageNamed:@"mine_giftcard_usedTag"];
  29. break;
  30. case ASGiftCardStateExpired:
  31. _priceLb.textColor = _DBDBDB;
  32. _cardIcon.selected = true;
  33. _timeLb.hidden = true;
  34. _desLb.textColor = _DBDBDB;
  35. _bgImgV.hidden = true;
  36. _tagImgV.hidden = false;
  37. _tagImgV.image = [UIImage imageNamed:@"mine_giftcard_expiredTag"];
  38. break;
  39. default:
  40. _priceLb.textColor = Col_FFF;
  41. _timeLb.hidden = false;
  42. _desLb.textColor = Col_FFF;
  43. _cardIcon.selected = false;
  44. _bgImgV.hidden = false;
  45. _tagImgV.hidden = true;
  46. break;
  47. }
  48. }
  49. - (void)setData:(ASGiftCardModel *)m {
  50. self.priceLb.text = m.giftcard_amount;
  51. self.desLb.text = @"For All Product";
  52. self.timeLb.text = [NSString stringWithFormat:@"Expires in: %@", m.timeStr];
  53. self.state = m.state;
  54. }
  55. - (void)awakeFromNib {
  56. [super awakeFromNib];
  57. // Initialization code
  58. }
  59. - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
  60. [super setSelected:selected animated:animated];
  61. // Configure the view for the selected state
  62. }
  63. - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
  64. self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
  65. if (self) {
  66. [self loadSubV];
  67. }
  68. return self;
  69. }
  70. - (instancetype)initWithFrame:(CGRect)frame
  71. {
  72. self = [super initWithFrame:frame];
  73. if (self) {
  74. [self loadSubV];
  75. }
  76. return self;
  77. }
  78. - (void)loadSubV {
  79. self.selectionStyle = UITableViewCellSelectionStyleNone;
  80. self.contentView.backgroundColor = UIColor.clearColor;
  81. self.backgroundColor = UIColor.clearColor;
  82. [self.contentView addSubview:self.cardBgV];
  83. [self.cardBgV addSubview:self.bgImgV];
  84. [self.cardBgV addSubview:self.tagImgV];
  85. [self.cardBgV addSubview:self.cardIcon];
  86. [self.cardBgV addSubview:self.priceLb];
  87. [self.cardBgV addSubview:self.desLb];
  88. [self.cardBgV addSubview:self.timeLb];
  89. self.tagImgV.hidden = true;
  90. [self.cardBgV mas_makeConstraints:^(MASConstraintMaker *make) {
  91. make.top.equalTo(self.contentView).offset(10);
  92. make.bottom.equalTo(self.contentView).offset(-10);
  93. make.leading.equalTo(self.contentView).offset(20);
  94. make.trailing.equalTo(self.contentView).offset(-20);
  95. }];
  96. [self.bgImgV mas_makeConstraints:^(MASConstraintMaker *make) {
  97. make.edges.equalTo(self.cardBgV);
  98. make.height.equalTo(self.bgImgV.mas_width).multipliedBy(2/3.35);
  99. }];
  100. [self.tagImgV mas_makeConstraints:^(MASConstraintMaker *make) {
  101. make.edges.equalTo(self.cardBgV);
  102. make.height.equalTo(self.bgImgV.mas_width).multipliedBy(2/3.35);
  103. }];
  104. [self.cardIcon mas_makeConstraints:^(MASConstraintMaker *make) {
  105. make.leading.equalTo(self.cardBgV).offset(15);
  106. make.top.equalTo(self.cardBgV).offset(15);
  107. make.height.equalTo(@30);
  108. make.width.equalTo(@98);
  109. }];
  110. [self.priceLb mas_makeConstraints:^(MASConstraintMaker *make) {
  111. make.leading.equalTo(self.cardBgV).offset(20);
  112. make.height.equalTo(@38);
  113. make.trailing.lessThanOrEqualTo(self.cardBgV).offset(-20);
  114. }];
  115. [self.desLb mas_makeConstraints:^(MASConstraintMaker *make) {
  116. make.leading.equalTo(self.priceLb);
  117. make.bottom.equalTo(self.cardBgV).offset(-20);
  118. make.height.equalTo(@14);
  119. make.top.equalTo(self.priceLb.mas_bottom).offset(5);
  120. }];
  121. [self.timeLb mas_makeConstraints:^(MASConstraintMaker *make) {
  122. make.trailing.equalTo(self.cardBgV).offset(-20);
  123. make.bottom.equalTo(self.desLb);
  124. make.height.equalTo(@17);
  125. make.leading.equalTo(self.desLb.mas_trailing).offset(10);
  126. }];
  127. [self.timeLb setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
  128. }
  129. - (UIView *)cardBgV {
  130. if (!_cardBgV) {
  131. UIView *v = [UIView baseV];
  132. v.layer.cornerRadius = 8;
  133. v.layer.masksToBounds = true;
  134. v.backgroundColor = UIColor.whiteColor;
  135. _cardBgV = v;
  136. }
  137. return _cardBgV;
  138. }
  139. - (UIImageView *)bgImgV {
  140. if (!_bgImgV) {
  141. UIImageView *v = [UIImageView baseImgV];
  142. v.contentMode = UIViewContentModeScaleAspectFill;
  143. v.clipsToBounds = true;
  144. v.image = [UIImage imageNamed:@"mine_giftcard_bg"];
  145. _bgImgV = v;
  146. }
  147. return _bgImgV;
  148. }
  149. - (UIImageView *)tagImgV {
  150. if (!_tagImgV) {
  151. UIImageView *v = [UIImageView baseImgV];
  152. v.contentMode = UIViewContentModeScaleAspectFill;
  153. v.clipsToBounds = true;
  154. v.backgroundColor = _E8E8E8;
  155. v.image = [UIImage imageNamed:@"mine_giftcard_bg"];
  156. _tagImgV = v;
  157. }
  158. return _tagImgV;
  159. }
  160. - (UIButton *)cardIcon {
  161. if (!_cardIcon) {
  162. UIButton *bt = [UIButton buttonWithType:UIButtonTypeCustom];
  163. [bt setTitle:@"GIFT CARD" forState:UIControlStateNormal];
  164. bt.titleLabel.font = [UIFont fontWithName:Rob_Bold size:12];
  165. [bt setImage:[UIImage imageNamed:@"mine_giftcard_icon"] forState:UIControlStateNormal];
  166. [bt setTitleColor:Col_FFF forState:UIControlStateNormal];
  167. [bt setImage:[UIImage imageNamed:@"mine_giftcard_icon_disabel"] forState:UIControlStateSelected];
  168. [bt setTitleColor:_DBDBDB forState:UIControlStateSelected];
  169. bt.imageEdgeInsets = UIEdgeInsetsMake(0, -4, 0, 4);
  170. _cardIcon = bt;
  171. }
  172. return _cardIcon;
  173. }
  174. - (UILabel *)priceLb {
  175. if (!_priceLb) {
  176. UILabel *lb = [UILabel baseLb];
  177. lb.font = [UIFont fontWithName:Rob_BlackItalic size:32];
  178. lb.textColor = Col_FFF;
  179. _priceLb = lb;
  180. }
  181. return _priceLb;
  182. }
  183. - (UILabel *)desLb {
  184. if (!_desLb) {
  185. UILabel *lb = [UILabel baseLb];
  186. lb.font = [UIFont fontWithName:Rob_Regular size:12];
  187. lb.textColor = Col_FFF;
  188. _desLb = lb;
  189. }
  190. return _desLb;
  191. }
  192. - (UILabel *)timeLb {
  193. if (!_timeLb) {
  194. UILabel *lb = [UILabel baseLb];
  195. lb.font = [UIFont fontWithName:Rob_Bold size:14];
  196. lb.textAlignment = NSTextAlignmentRight;
  197. lb.textColor = Col_FFF;
  198. _timeLb = lb;
  199. }
  200. return _timeLb;
  201. }
  202. @end