Explorar o código

礼品卡页面开发;

iOS-Abel hai 1 ano
pai
achega
9691841f28
Modificáronse 29 ficheiros con 836 adicións e 6 borrados
  1. 24 0
      Asteria.xcodeproj/project.pbxproj
  2. 1 0
      Asteria/ASUI/ColorDefine.h
  3. 2 0
      Asteria/ASUI/SimpleBase/ASBaseViewController.h
  4. 8 4
      Asteria/ASUI/SimpleBase/ASBaseViewController.m
  5. 20 0
      Asteria/Fuction/UserCenter/ConponsAndGiftCard/ASGiftCardAvailabelCell.h
  6. 245 0
      Asteria/Fuction/UserCenter/ConponsAndGiftCard/ASGiftCardAvailabelCell.m
  7. 16 0
      Asteria/Fuction/UserCenter/ConponsAndGiftCard/ASGiftCardListViewController.h
  8. 279 0
      Asteria/Fuction/UserCenter/ConponsAndGiftCard/ASGiftCardListViewController.m
  9. 31 0
      Asteria/Fuction/UserCenter/ConponsAndGiftCard/ASGiftCardModel.h
  10. 22 0
      Asteria/Fuction/UserCenter/ConponsAndGiftCard/ASGiftCardModel.m
  11. 19 0
      Asteria/Fuction/UserCenter/ConponsAndGiftCard/ASGiftCardTableView.h
  12. 51 0
      Asteria/Fuction/UserCenter/ConponsAndGiftCard/ASGiftCardTableView.m
  13. 6 0
      Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/Contents.json
  14. BIN=BIN
      Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_bg.imageset/BG@2x.png
  15. BIN=BIN
      Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_bg.imageset/BG@3x.png
  16. 22 0
      Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_bg.imageset/Contents.json
  17. 22 0
      Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_expiredTag.imageset/Contents.json
  18. BIN=BIN
      Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_expiredTag.imageset/蒙版组 6097@2x.png
  19. BIN=BIN
      Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_expiredTag.imageset/蒙版组 6097@3x.png
  20. 22 0
      Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_icon.imageset/Contents.json
  21. BIN=BIN
      Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_icon.imageset/礼物@2x.png
  22. BIN=BIN
      Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_icon.imageset/礼物@3x.png
  23. 22 0
      Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_icon_disabel.imageset/Contents.json
  24. BIN=BIN
      Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_icon_disabel.imageset/礼物@2x.png
  25. BIN=BIN
      Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_icon_disabel.imageset/礼物@3x.png
  26. 22 0
      Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_usedTag.imageset/Contents.json
  27. BIN=BIN
      Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_usedTag.imageset/蒙版组 6097@2x.png
  28. BIN=BIN
      Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_usedTag.imageset/蒙版组 6097@3x.png
  29. 2 2
      Asteria/Fuction/UserCenter/UserCenterHome/ASUserCenterViewController.m

+ 24 - 0
Asteria.xcodeproj/project.pbxproj

@@ -67,6 +67,8 @@
 		8160201F2A2F11AB00E4A8F1 /* ASHomeTipCollectCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8160201E2A2F11AB00E4A8F1 /* ASHomeTipCollectCell.m */; };
 		816020222A2F1C6A00E4A8F1 /* ASHomeBestSellCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 816020212A2F1C6A00E4A8F1 /* ASHomeBestSellCell.m */; };
 		816020252A2F1C9E00E4A8F1 /* ASHomeMainListModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 816020242A2F1C9E00E4A8F1 /* ASHomeMainListModel.m */; };
+		816D0C9A2AF3901C00395B5B /* ASGiftCardListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 816D0C992AF3901C00395B5B /* ASGiftCardListViewController.m */; };
+		816D0C9D2AF3988400395B5B /* ASGiftCardAvailabelCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 816D0C9C2AF3988300395B5B /* ASGiftCardAvailabelCell.m */; };
 		81717C912A3BE39C00648139 /* ASProductSortFilterView.m in Sources */ = {isa = PBXBuildFile; fileRef = 81717C902A3BE39C00648139 /* ASProductSortFilterView.m */; };
 		81717C942A3BE4E000648139 /* ASProductListSortFilterCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 81717C932A3BE4E000648139 /* ASProductListSortFilterCell.m */; };
 		81717C992A3BF1DD00648139 /* ASHomeAlertWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 81717C982A3BF1DD00648139 /* ASHomeAlertWindow.m */; };
@@ -128,6 +130,8 @@
 		81C7963F2A551FB0003083B8 /* ASInfomationSetController.m in Sources */ = {isa = PBXBuildFile; fileRef = 81C7963E2A551FB0003083B8 /* ASInfomationSetController.m */; };
 		81C796422A551FE9003083B8 /* KWTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 81C796402A551FE9003083B8 /* KWTextField.m */; };
 		81C796462A5542B2003083B8 /* ASHelpListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 81C796452A5542B2003083B8 /* ASHelpListViewController.m */; };
+		81CE28942AF490C20012AA45 /* ASGiftCardTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 81CE28932AF490C20012AA45 /* ASGiftCardTableView.m */; };
+		81CE28972AF4953C0012AA45 /* ASGiftCardModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 81CE28962AF4953C0012AA45 /* ASGiftCardModel.m */; };
 		81DFA5592A4681E900DA708B /* ASPointEranCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 81DFA5582A4681E900DA708B /* ASPointEranCell.m */; };
 		81DFA55D2A46C46D00DA708B /* ASWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 81DFA55C2A46C46D00DA708B /* ASWebViewController.m */; };
 		81DFA5602A46CC8E00DA708B /* CTMediator+ASWebView.m in Sources */ = {isa = PBXBuildFile; fileRef = 81DFA55F2A46CC8E00DA708B /* CTMediator+ASWebView.m */; };
@@ -354,6 +358,10 @@
 		816020212A2F1C6A00E4A8F1 /* ASHomeBestSellCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ASHomeBestSellCell.m; sourceTree = "<group>"; };
 		816020232A2F1C9E00E4A8F1 /* ASHomeMainListModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ASHomeMainListModel.h; sourceTree = "<group>"; };
 		816020242A2F1C9E00E4A8F1 /* ASHomeMainListModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ASHomeMainListModel.m; sourceTree = "<group>"; };
+		816D0C982AF3901C00395B5B /* ASGiftCardListViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ASGiftCardListViewController.h; sourceTree = "<group>"; };
+		816D0C992AF3901C00395B5B /* ASGiftCardListViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ASGiftCardListViewController.m; sourceTree = "<group>"; };
+		816D0C9B2AF3988300395B5B /* ASGiftCardAvailabelCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ASGiftCardAvailabelCell.h; sourceTree = "<group>"; };
+		816D0C9C2AF3988300395B5B /* ASGiftCardAvailabelCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ASGiftCardAvailabelCell.m; sourceTree = "<group>"; };
 		81717C8F2A3BE39C00648139 /* ASProductSortFilterView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ASProductSortFilterView.h; sourceTree = "<group>"; };
 		81717C902A3BE39C00648139 /* ASProductSortFilterView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ASProductSortFilterView.m; sourceTree = "<group>"; };
 		81717C922A3BE4E000648139 /* ASProductListSortFilterCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ASProductListSortFilterCell.h; sourceTree = "<group>"; };
@@ -477,6 +485,10 @@
 		81C796412A551FE9003083B8 /* KWTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KWTextField.h; sourceTree = "<group>"; };
 		81C796442A5542B2003083B8 /* ASHelpListViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ASHelpListViewController.h; sourceTree = "<group>"; };
 		81C796452A5542B2003083B8 /* ASHelpListViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ASHelpListViewController.m; sourceTree = "<group>"; };
+		81CE28922AF490C20012AA45 /* ASGiftCardTableView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ASGiftCardTableView.h; sourceTree = "<group>"; };
+		81CE28932AF490C20012AA45 /* ASGiftCardTableView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ASGiftCardTableView.m; sourceTree = "<group>"; };
+		81CE28952AF4953C0012AA45 /* ASGiftCardModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ASGiftCardModel.h; sourceTree = "<group>"; };
+		81CE28962AF4953C0012AA45 /* ASGiftCardModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ASGiftCardModel.m; sourceTree = "<group>"; };
 		81DFA5572A4681E900DA708B /* ASPointEranCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ASPointEranCell.h; sourceTree = "<group>"; };
 		81DFA5582A4681E900DA708B /* ASPointEranCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ASPointEranCell.m; sourceTree = "<group>"; };
 		81DFA55B2A46C46D00DA708B /* ASWebViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ASWebViewController.h; sourceTree = "<group>"; };
@@ -1276,8 +1288,16 @@
 			children = (
 				81DFA5732A47D97C00DA708B /* ASCouponsListViewController.h */,
 				81DFA5742A47D97C00DA708B /* ASCouponsListViewController.m */,
+				816D0C982AF3901C00395B5B /* ASGiftCardListViewController.h */,
+				816D0C992AF3901C00395B5B /* ASGiftCardListViewController.m */,
+				816D0C9B2AF3988300395B5B /* ASGiftCardAvailabelCell.h */,
+				816D0C9C2AF3988300395B5B /* ASGiftCardAvailabelCell.m */,
 				81DFA5762A47F28D00DA708B /* ASCouponListCell.h */,
 				81DFA5772A47F28D00DA708B /* ASCouponListCell.m */,
+				81CE28922AF490C20012AA45 /* ASGiftCardTableView.h */,
+				81CE28932AF490C20012AA45 /* ASGiftCardTableView.m */,
+				81CE28952AF4953C0012AA45 /* ASGiftCardModel.h */,
+				81CE28962AF4953C0012AA45 /* ASGiftCardModel.m */,
 			);
 			path = ConponsAndGiftCard;
 			sourceTree = "<group>";
@@ -2026,6 +2046,7 @@
 				81717D3F2A3D5EAD00648139 /* ASDefualtAlertV.m in Sources */,
 				819900222A020A6F006FE68C /* LYTools.m in Sources */,
 				816020072A2DD4FB00E4A8F1 /* Target_Home.m in Sources */,
+				81CE28942AF490C20012AA45 /* ASGiftCardTableView.m in Sources */,
 				816020132A2EE5A200E4A8F1 /* ASCategaryCollectCell.m in Sources */,
 				81C796422A551FE9003083B8 /* KWTextField.m in Sources */,
 				9AD346012A08D60F005CA070 /* ZFFloatView.m in Sources */,
@@ -2065,8 +2086,10 @@
 				81E5EE942A4A760D0075695F /* ASVipCenterLineItemView.m in Sources */,
 				81601FFF2A2DC8E700E4A8F1 /* ASHomeBannerCell.m in Sources */,
 				81717D132A3C4AE000648139 /* KWSearchViewController.m in Sources */,
+				81CE28972AF4953C0012AA45 /* ASGiftCardModel.m in Sources */,
 				9AD6A5442A1218E8001DE3D9 /* PassWordSecureBtnV.m in Sources */,
 				811F42462A40533C00DA68F1 /* ASPointsHomeViewController.m in Sources */,
+				816D0C9A2AF3901C00395B5B /* ASGiftCardListViewController.m in Sources */,
 				81C796372A5517B0003083B8 /* ASSettingListCell.m in Sources */,
 				81717D392A3D322700648139 /* KWCustomLayout.m in Sources */,
 				81DFA5602A46CC8E00DA708B /* CTMediator+ASWebView.m in Sources */,
@@ -2137,6 +2160,7 @@
 				8160200A2A2DD59E00E4A8F1 /* CTMediator+Home.m in Sources */,
 				81717C9C2A3BF1F100648139 /* ASHomeAlertViewController.m in Sources */,
 				9AD345FC2A08D60F005CA070 /* ZFPlayerLogManager.m in Sources */,
+				816D0C9D2AF3988400395B5B /* ASGiftCardAvailabelCell.m in Sources */,
 				81354C0E2A297D6A0082C93A /* HomeFlashDealSubCollectCell.m in Sources */,
 				81354BFD2A28998B0082C93A /* KWMineMoreProductsCell.m in Sources */,
 				9ACBEC252A14707400A8F97A /* AS_SignUpC.m in Sources */,

+ 1 - 0
Asteria/ASUI/ColorDefine.h

@@ -17,6 +17,7 @@
 #define _262626 ([UIColor colorWithHexString:@"#262626"])
 #define _0B0B0B ([UIColor colorWithHexString:@"#0B0B0B"])
 
+#define _E8E8E8 ([UIColor colorWithHexString:@"#E8E8E8"])
 #define _F8F8F8 ([UIColor colorWithHexString:@"#F8F8F8"])
 #define _F0F0F0 ([UIColor colorWithHexString:@"#F0F0F0"])
 

+ 2 - 0
Asteria/ASUI/SimpleBase/ASBaseViewController.h

@@ -26,6 +26,8 @@ NS_ASSUME_NONNULL_BEGIN
 
 - (void)hiddenEmpty;
 
+- (void)setEmptyTip:(NSString *)tipStr;
+
 - (void)showEmptyV:(UIView *)v;
 
 @end

+ 8 - 4
Asteria/ASUI/SimpleBase/ASBaseViewController.m

@@ -22,7 +22,7 @@
 @property (nonatomic, copy) btnClickBlock nav_searchBlock;
 
 @property (nonatomic, strong) UIView *emptyV;
-@property (nonatomic, strong) UIView *emptylb;
+@property (nonatomic, strong) UILabel *emptylb;
 
 
 
@@ -39,8 +39,12 @@
     self.emptyV.hidden = true;
 }
 
+- (void)setEmptyTip:(NSString *)tipStr {
+    self.emptylb.text = tipStr;
+}
+
 - (void)showEmptyV:(UIView *)v {
-    if (self.emptyV.superview != nil) {
+    if (self.emptyV.superview == v) {
         self.emptyV.hidden = false;
         [self.emptyV.superview bringSubviewToFront:self.emptyV];
         return;
@@ -53,7 +57,7 @@
         }];
     } else {
         [v addSubview:self.emptyV];
-        [self.emptyV mas_makeConstraints:^(MASConstraintMaker *make) {
+        [self.emptyV mas_remakeConstraints:^(MASConstraintMaker *make) {
             make.edges.equalTo(v);
             make.width.height.equalTo(v);
         }];
@@ -187,7 +191,7 @@
     return _emptyV;
 }
 
-- (UIView *)emptylb {
+- (UILabel *)emptylb {
     if (!_emptylb) {
         UILabel *lb = [UILabel baseLb];
         lb.font = [UIFont fontWithName:Rob_Medium size:72];

+ 20 - 0
Asteria/Fuction/UserCenter/ConponsAndGiftCard/ASGiftCardAvailabelCell.h

@@ -0,0 +1,20 @@
+//
+//  ASGiftCardAvailabelCell.h
+//  Asteria
+//
+//  Created by iOS on 2023/11/2.
+//
+
+#import <UIKit/UIKit.h>
+#import "ASGiftCardModel.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface ASGiftCardAvailabelCell : UITableViewCell
+
+- (void)setData:(ASGiftCardModel *)m;
+
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 245 - 0
Asteria/Fuction/UserCenter/ConponsAndGiftCard/ASGiftCardAvailabelCell.m

@@ -0,0 +1,245 @@
+//
+//  ASGiftCardAvailabelCell.m
+//  Asteria
+//
+//  Created by iOS on 2023/11/2.
+//
+
+#import "ASGiftCardAvailabelCell.h"
+
+@interface ASGiftCardAvailabelCell ()
+
+@property (nonatomic, assign) ASGiftCardState state;
+@property (nonatomic, strong) UIView *cardBgV;
+@property (nonatomic, strong) UIImageView *bgImgV;
+@property (nonatomic, strong) UIButton *cardIcon;
+@property (nonatomic, strong) UILabel *priceLb;
+@property (nonatomic, strong) UILabel *desLb;
+@property (nonatomic, strong) UILabel *timeLb;
+
+@property (nonatomic, strong) UIImageView *tagImgV;
+
+@end
+
+@implementation ASGiftCardAvailabelCell
+
+- (void)setState:(ASGiftCardState)state {
+    
+    switch (state) {
+        case ASGiftCardStateUsed:
+            
+            _priceLb.textColor = _DBDBDB;
+            _cardIcon.selected = true;
+            _timeLb.hidden = true;
+            _desLb.textColor = _DBDBDB;
+            
+            _bgImgV.hidden = true;
+            _tagImgV.hidden = false;
+            _tagImgV.image = [UIImage imageNamed:@"mine_giftcard_usedTag"];
+            
+            break;
+        case ASGiftCardStateExpired:
+            _priceLb.textColor = _DBDBDB;
+            _cardIcon.selected = true;
+            _timeLb.hidden = true;
+            _desLb.textColor = _DBDBDB;
+            
+            _bgImgV.hidden = true;
+            _tagImgV.hidden = false;
+            _tagImgV.image = [UIImage imageNamed:@"mine_giftcard_expiredTag"];
+            break;
+            
+        default:
+            _priceLb.textColor = Col_FFF;
+            _timeLb.hidden = false;
+            _desLb.textColor = Col_FFF;
+            _cardIcon.selected = false;
+            _bgImgV.hidden = false;
+            _tagImgV.hidden = true;
+            break;
+    }
+}
+
+- (void)setData:(ASGiftCardModel *)m {
+    self.priceLb.text = m.price;
+    self.desLb.text = m.des;
+    self.timeLb.text = [NSString stringWithFormat:@"Expires in: %@", m.time];
+    
+    
+    self.state = m.state;
+}
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    // Initialization code
+}
+
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
+    [super setSelected:selected animated:animated];
+
+    // Configure the view for the selected state
+}
+
+- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
+    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
+    if (self) {
+        [self loadSubV];
+    }
+    return self;
+}
+
+- (instancetype)initWithFrame:(CGRect)frame
+{
+    self = [super initWithFrame:frame];
+    if (self) {
+        [self loadSubV];
+    }
+    return self;
+}
+
+- (void)loadSubV {
+    self.selectionStyle = UITableViewCellSelectionStyleNone;
+    self.contentView.backgroundColor = UIColor.clearColor;
+    self.backgroundColor = UIColor.clearColor;
+    
+    [self.contentView addSubview:self.cardBgV];
+    [self.cardBgV addSubview:self.bgImgV];
+    [self.cardBgV addSubview:self.tagImgV];
+    [self.cardBgV addSubview:self.cardIcon];
+    [self.cardBgV addSubview:self.priceLb];
+    [self.cardBgV addSubview:self.desLb];
+    [self.cardBgV addSubview:self.timeLb];
+    
+    self.tagImgV.hidden = true;
+    
+    [self.cardBgV mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.top.equalTo(self.contentView).offset(10);
+        make.bottom.equalTo(self.contentView).offset(-10);
+        make.leading.equalTo(self.contentView).offset(20);
+        make.trailing.equalTo(self.contentView).offset(-20);
+    }];
+    
+    [self.bgImgV mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.edges.equalTo(self.cardBgV);
+        make.height.equalTo(self.bgImgV.mas_width).multipliedBy(2/3.35);
+    }];
+    [self.tagImgV mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.edges.equalTo(self.cardBgV);
+        make.height.equalTo(self.bgImgV.mas_width).multipliedBy(2/3.35);
+    }];
+    
+    [self.cardIcon mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.leading.equalTo(self.cardBgV).offset(15);
+        make.top.equalTo(self.cardBgV).offset(15);
+        make.height.equalTo(@30);
+        make.width.equalTo(@98);
+    }];
+    
+    [self.priceLb mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.leading.equalTo(self.cardBgV).offset(20);
+        make.height.equalTo(@38);
+        make.trailing.lessThanOrEqualTo(self.cardBgV).offset(-20);
+    }];
+    
+    [self.desLb mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.leading.equalTo(self.priceLb);
+        make.bottom.equalTo(self.cardBgV).offset(-20);
+        make.height.equalTo(@14);
+        make.top.equalTo(self.priceLb.mas_bottom).offset(5);
+    }];
+    
+    [self.timeLb mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.trailing.equalTo(self.cardBgV).offset(-20);
+        make.bottom.equalTo(self.desLb);
+        make.height.equalTo(@17);
+        make.leading.equalTo(self.desLb.mas_trailing).offset(10);
+    }];
+    
+    [self.timeLb setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
+}
+
+
+- (UIView *)cardBgV {
+    if (!_cardBgV) {
+        UIView *v = [UIView baseV];
+        v.layer.cornerRadius = 8;
+        v.layer.masksToBounds = true;
+        v.backgroundColor = UIColor.whiteColor;
+        _cardBgV = v;
+    }
+    return _cardBgV;
+}
+
+- (UIImageView *)bgImgV {
+    if (!_bgImgV) {
+        UIImageView *v = [UIImageView baseImgV];
+        v.contentMode = UIViewContentModeScaleAspectFill;
+        v.clipsToBounds = true;
+        v.image = [UIImage imageNamed:@"mine_giftcard_bg"];
+        _bgImgV = v;
+    }
+    return _bgImgV;
+}
+
+- (UIImageView *)tagImgV {
+    if (!_tagImgV) {
+        UIImageView *v = [UIImageView baseImgV];
+        v.contentMode = UIViewContentModeScaleAspectFill;
+        v.clipsToBounds = true;
+        v.backgroundColor = _E8E8E8;
+        v.image = [UIImage imageNamed:@"mine_giftcard_bg"];
+        _tagImgV = v;
+    }
+    return _tagImgV;
+}
+
+- (UIButton *)cardIcon {
+    if (!_cardIcon) {
+        UIButton *bt = [UIButton buttonWithType:UIButtonTypeCustom];
+        [bt setTitle:@"GIFT CARD" forState:UIControlStateNormal];
+        bt.titleLabel.font = [UIFont fontWithName:Rob_Bold size:12];
+        [bt setImage:[UIImage imageNamed:@"mine_giftcard_icon"] forState:UIControlStateNormal];
+        [bt setTitleColor:Col_FFF forState:UIControlStateNormal];
+        
+        [bt setImage:[UIImage imageNamed:@"mine_giftcard_icon_disabel"] forState:UIControlStateSelected];
+        [bt setTitleColor:_DBDBDB forState:UIControlStateSelected];
+        
+        bt.imageEdgeInsets = UIEdgeInsetsMake(0, -4, 0, 4);
+        _cardIcon = bt;
+    }
+    return _cardIcon;
+}
+
+- (UILabel *)priceLb {
+    if (!_priceLb) {
+        UILabel *lb = [UILabel baseLb];
+        lb.font = [UIFont fontWithName:Rob_BlackItalic size:32];
+        lb.textColor = Col_FFF;
+        _priceLb = lb;
+    }
+    return _priceLb;
+}
+
+- (UILabel *)desLb {
+    if (!_desLb) {
+        UILabel *lb = [UILabel baseLb];
+        lb.font = [UIFont fontWithName:Rob_Regular size:12];
+        lb.textColor = Col_FFF;
+        _desLb = lb;
+    }
+    return _desLb;
+}
+
+- (UILabel *)timeLb {
+    if (!_timeLb) {
+        UILabel *lb = [UILabel baseLb];
+        lb.font = [UIFont fontWithName:Rob_Bold size:14];
+        lb.textAlignment = NSTextAlignmentRight;
+        lb.textColor = Col_FFF;
+        _timeLb = lb;
+    }
+    return _timeLb;
+}
+
+
+@end

+ 16 - 0
Asteria/Fuction/UserCenter/ConponsAndGiftCard/ASGiftCardListViewController.h

@@ -0,0 +1,16 @@
+//
+//  ASGiftCardListViewController.h
+//  Asteria
+//
+//  Created by iOS on 2023/11/2.
+//
+
+#import "ASBaseViewController.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface ASGiftCardListViewController : ASBaseViewController
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 279 - 0
Asteria/Fuction/UserCenter/ConponsAndGiftCard/ASGiftCardListViewController.m

@@ -0,0 +1,279 @@
+//
+//  ASGiftCardListViewController.m
+//  Asteria
+//
+//  Created by iOS on 2023/11/2.
+//
+
+#import "ASGiftCardListViewController.h"
+#import "ASGiftCardTableView.h"
+
+@interface ASGiftCardListViewController ()<UIScrollViewDelegate>
+
+@property (nonatomic, strong) UIView *topBgV;
+@property (nonatomic, strong) UIView *bottomBgV;
+
+@property (nonatomic, strong) UIButton *availabelBt;
+@property (nonatomic, strong) UIButton *usedBt;
+
+@property (nonatomic, strong) UIScrollView *scrollV;
+
+@property (nonatomic, strong) ASGiftCardTableView *allTableV;
+@property (nonatomic, strong) ASGiftCardTableView *usedTableV;
+
+@end
+
+@implementation ASGiftCardListViewController
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    [self loadSubVs];
+    [self configSubVs];
+    
+}
+
+- (void)viewWillAppear:(BOOL)animated {
+    [super viewWillAppear:animated];
+    [self loadData];
+    [self checkEmpty];
+}
+
+
+- (void)loadData {
+    NSMutableArray *allArr = [NSMutableArray array];
+    NSMutableArray *usedArr = [NSMutableArray array];
+    if (arc4random()%2 == 1) {
+        for (int i=0;i<(arc4random()%100+3);i++) {
+            [allArr addObject:[ASGiftCardModel demoData]];
+        }
+        for (int i=0;i<(arc4random()%200+5);i++) {
+            ASGiftCardModel *m = [ASGiftCardModel demoData];
+            m.state = arc4random()%3;// == 1 ? ASGiftCardStateUsed : ASGiftCardStateExpired;
+            [usedArr addObject:m];
+        }
+    }
+    self.allTableV.dataArr = allArr;
+    self.usedTableV.dataArr = usedArr;
+    [self setEmptyTip:@"No Giftcard Yet"];
+    [self.allTableV reloadData];
+    [self.usedTableV reloadData];
+    
+}
+
+- (void)checkEmpty {
+    if (_allTableV.dataArr.count == 0 && self.availabelBt.isSelected) {
+        [self showEmptyV: self.allTableV];
+    } else if (_usedTableV.dataArr.count == 0 && self.usedBt.isSelected) {
+        [self showEmptyV: self.usedTableV];
+    } else {
+        [self hiddenEmpty];
+    }
+}
+
+// MARK: - loadSubVs
+- (void)configSubVs {
+    self.view.backgroundColor = _E0FFF5;
+    self.customNavBar.backgroundColor = _F0FFFA;
+    self.titleStr = @"My Giftcard";
+    [self setNavRightSearch:^{
+        
+    }];
+}
+
+- (void)loadSubVs {
+    [self.view addSubview:self.topBgV];
+    [self.view addSubview:self.bottomBgV];
+    
+    [self.topBgV addSubview:self.availabelBt];
+    [self.topBgV addSubview:self.usedBt];
+    
+    [self.bottomBgV addSubview:self.scrollV];
+    [self.scrollV addSubview:self.allTableV];
+    [self.scrollV addSubview:self.usedTableV];
+    
+    
+    [self.topBgV mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.top.equalTo(self.customNavBar.mas_bottom);
+        make.leading.trailing.equalTo(self.view);
+        make.height.equalTo(@60);
+    }];
+    
+    [self.availabelBt mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.centerY.equalTo(self.topBgV);
+        make.height.equalTo(@40);
+        make.leading.equalTo(self.topBgV).offset(10);
+    }];
+    [self.usedBt mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.centerY.equalTo(self.availabelBt);
+        make.height.equalTo(@40);
+        make.leading.equalTo(self.availabelBt.mas_trailing).offset(10);
+        make.trailing.equalTo(self.topBgV).offset(-10);
+        make.width.equalTo(self.availabelBt);
+    }];
+    
+    [self.bottomBgV mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.top.equalTo(self.topBgV.mas_bottom);
+        make.leading.trailing.bottom.equalTo(self.view);
+    }];
+    
+    [self.scrollV mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.top.equalTo(self.bottomBgV).offset(10);
+        make.leading.trailing.bottom.equalTo(self.bottomBgV);
+    }];
+    
+    [self.allTableV mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.top.leading.bottom.equalTo(self.scrollV);
+        make.width.equalTo(self.bottomBgV);
+        make.height.equalTo(self.bottomBgV).offset(-10);
+    }];
+    
+    [self.usedTableV mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.leading.equalTo(self.allTableV.mas_trailing);
+        make.top.trailing.bottom.equalTo(self.scrollV);
+        make.width.equalTo(self.bottomBgV);
+        make.height.equalTo(self.bottomBgV).offset(-10);
+    }];
+    
+    dispatch_async(dispatch_get_main_queue(), ^{
+        [UIView viewAddHorColorBg:self.bottomBgV colorArr:@[
+            (id)_E0FFF5.CGColor,
+            (id)Col_FFF.CGColor
+        ] startP:CGPointMake(0.5, 0) endP:CGPointMake(0.5, 1)];
+        [self.bottomBgV bringSubviewToFront:self.scrollV];
+        
+    });
+    
+}
+
+
+// MARK: - bt Actions
+
+- (void)topBtAction:(UIButton *)bt {
+    if (bt == self.usedBt) {
+        self.availabelBt.selected = false;
+        self.usedBt.selected = true;
+        [self.scrollV setContentOffset:CGPointMake(KScreenWidth, 0) animated:true];
+    } else {
+        self.availabelBt.selected = true;
+        self.usedBt.selected = false;
+        [self.scrollV setContentOffset:CGPointMake(0, 0) animated:true];
+    }
+    [self setBtStatus:self.availabelBt];
+    [self setBtStatus:self.usedBt];
+    [self checkEmpty];
+}
+
+- (void)setBtStatus:(UIButton *)bt {
+    bt.backgroundColor = bt.isSelected ? _113632 : Col_FFF;
+    bt.titleLabel.font = [UIFont fontWithName:bt.isSelected ? Rob_Bold : Rob_Regular size:16];
+    
+}
+
+// MARK: - subvs
+
+
+- (UIView *)topBgV {
+    if (!_topBgV) {
+        UIView *v = [UIView baseV];
+        v.backgroundColor = _E0FFF5;
+        _topBgV = v;
+    }
+    return _topBgV;
+}
+
+- (UIView *)bottomBgV{
+    if (!_bottomBgV) {
+        UIView *v = [UIView baseV];
+        v.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight);
+        v.backgroundColor = UIColor.clearColor;
+        
+        _bottomBgV = v;
+    }
+    return _bottomBgV;
+}
+
+- (UIButton *)availabelBt {
+    if (!_availabelBt) {
+        UIButton *bt = [UIButton buttonWithType:UIButtonTypeCustom];
+        [bt addTarget:self action:@selector(topBtAction:) forControlEvents:UIControlEventTouchUpInside];
+        bt.selected = true;
+        bt.backgroundColor = _113632;
+        bt.titleLabel.font = [UIFont fontWithName:Rob_Bold size:16];
+        [bt setTitleColor:Col_000 forState:UIControlStateNormal];
+        bt.layer.cornerRadius = 4;
+        bt.layer.masksToBounds = true;
+        [bt setTitleColor:Col_FFF forState:UIControlStateSelected];
+        [bt setTitle:@"AVAILABLE" forState:UIControlStateNormal];
+        _availabelBt = bt;
+    }
+    return _availabelBt;
+}
+
+- (UIButton *)usedBt {
+    if (!_usedBt) {
+        UIButton *bt = [UIButton buttonWithType:UIButtonTypeCustom];
+        [bt addTarget:self action:@selector(topBtAction:) forControlEvents:UIControlEventTouchUpInside];
+        bt.backgroundColor = Col_FFF;
+        bt.titleLabel.font = [UIFont fontWithName:Rob_Regular size:16];
+        [bt setTitleColor:Col_000 forState:UIControlStateNormal];
+        bt.layer.cornerRadius = 4;
+        bt.layer.masksToBounds = true;
+        [bt setTitleColor:Col_FFF forState:UIControlStateSelected];
+        [bt setTitle:@"EXPIRED/USED" forState:UIControlStateNormal];
+        _usedBt = bt;
+    }
+    return _usedBt;
+}
+
+
+- (UIScrollView *)scrollV {
+    if (!_scrollV) {
+        UIScrollView *v = [[UIScrollView alloc] init];
+        v.showsVerticalScrollIndicator = false;
+        v.showsHorizontalScrollIndicator = false;
+        v.delegate = self;
+        v.pagingEnabled = true;
+        v.backgroundColor = UIColor.clearColor;
+        v.alwaysBounceHorizontal = true;
+        _scrollV = v;
+    }
+    return _scrollV;
+}
+
+- (ASGiftCardTableView *)allTableV {
+    if (!_allTableV) {
+        ASGiftCardTableView *v = [[ASGiftCardTableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
+        _allTableV = v;
+    }
+    return _allTableV;
+}
+
+- (ASGiftCardTableView *)usedTableV {
+    if (!_usedTableV) {
+        ASGiftCardTableView *v = [[ASGiftCardTableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
+        _usedTableV = v;
+    }
+    return _usedTableV;
+}
+
+
+// MARK: - scrollview delegate
+- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
+    NSInteger index = (NSInteger)(scrollView.contentOffset.x/KScreenWidth);
+    self.availabelBt.selected = index == 0;
+    self.usedBt.selected = index == 1;
+    [self checkEmpty];
+    [self setBtStatus:self.availabelBt];
+    [self setBtStatus:self.usedBt];
+}
+
+- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView {
+    NSInteger index = (NSInteger)(scrollView.contentOffset.x/KScreenWidth);
+    self.availabelBt.selected = index == 0;
+    self.usedBt.selected = index == 1;
+    [self checkEmpty];
+    [self setBtStatus:self.availabelBt];
+    [self setBtStatus:self.usedBt];
+}
+
+@end

+ 31 - 0
Asteria/Fuction/UserCenter/ConponsAndGiftCard/ASGiftCardModel.h

@@ -0,0 +1,31 @@
+//
+//  ASGiftCardModel.h
+//  Asteria
+//
+//  Created by iOS on 2023/11/3.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef enum : NSUInteger {
+    ASGiftCardStateNormal = 0,
+    ASGiftCardStateUsed,
+    ASGiftCardStateExpired,
+} ASGiftCardState;
+
+@interface ASGiftCardModel : NSObject
+
+@property (nonatomic, copy) NSString *Id;
+@property (nonatomic, copy) NSString *price;
+@property (nonatomic, copy) NSString *des;
+@property (nonatomic, copy) NSString *time;
+@property (nonatomic, assign) ASGiftCardState state;
+
+
++ (ASGiftCardModel *)demoData;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 22 - 0
Asteria/Fuction/UserCenter/ConponsAndGiftCard/ASGiftCardModel.m

@@ -0,0 +1,22 @@
+//
+//  ASGiftCardModel.m
+//  Asteria
+//
+//  Created by iOS on 2023/11/3.
+//
+
+#import "ASGiftCardModel.h"
+
+@implementation ASGiftCardModel
+
++ (ASGiftCardModel *)demoData {
+    ASGiftCardModel *m = [ASGiftCardModel new];
+    m.price = @"$5";
+    m.time = @"2022 5:18 pm";
+    m.Id = [NSString stringWithFormat:@"%u", (arc4random()%1000)];
+    m.des = @"For All Product";
+    
+    return m;
+}
+
+@end

+ 19 - 0
Asteria/Fuction/UserCenter/ConponsAndGiftCard/ASGiftCardTableView.h

@@ -0,0 +1,19 @@
+//
+//  ASGiftCardTableView.h
+//  Asteria
+//
+//  Created by iOS on 2023/11/3.
+//
+
+#import <UIKit/UIKit.h>
+#import "ASGiftCardModel.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface ASGiftCardTableView : UITableView
+
+@property (nonatomic, strong) NSMutableArray <ASGiftCardModel *>*dataArr;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 51 - 0
Asteria/Fuction/UserCenter/ConponsAndGiftCard/ASGiftCardTableView.m

@@ -0,0 +1,51 @@
+//
+//  ASGiftCardTableView.m
+//  Asteria
+//
+//  Created by iOS on 2023/11/3.
+//
+
+#import "ASGiftCardTableView.h"
+#import "ASGiftCardAvailabelCell.h"
+
+@interface ASGiftCardTableView ()<UITableViewDelegate,UITableViewDataSource>
+
+@end
+
+@implementation ASGiftCardTableView
+
+- (instancetype)initWithFrame:(CGRect)frame style:(UITableViewStyle)style {
+    self = [super initWithFrame:frame style:style];
+    if (self) {
+        [self configSelf];
+    }
+    return self;
+}
+    
+- (void)configSelf {
+    [self baseSet];
+    self.backgroundColor = UIColor.clearColor;
+    [self registerClass:[ASGiftCardAvailabelCell class] forCellReuseIdentifier:@"ASGiftCardAvailabelCell"];
+    self.delegate = self;
+    self.dataSource = self;
+    self.alwaysBounceVertical = true;
+    self.showsVerticalScrollIndicator = false;
+}
+
+// MARK: - delegate,datasource
+
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+    return self.dataArr.count;
+}
+
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+    ASGiftCardAvailabelCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ASGiftCardAvailabelCell" forIndexPath:indexPath];
+    if (self.dataArr.count <= indexPath.row) {
+        return cell;
+    }
+    ASGiftCardModel *m = self.dataArr[indexPath.row];
+    [cell setData:m];
+    return cell;
+}
+
+@end

+ 6 - 0
Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/Contents.json

@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN=BIN
Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_bg.imageset/BG@2x.png


BIN=BIN
Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_bg.imageset/BG@3x.png


+ 22 - 0
Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_bg.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "BG@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "BG@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 22 - 0
Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_expiredTag.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "蒙版组 6097@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "蒙版组 6097@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN=BIN
Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_expiredTag.imageset/蒙版组 6097@2x.png


BIN=BIN
Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_expiredTag.imageset/蒙版组 6097@3x.png


+ 22 - 0
Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_icon.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "礼物@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "礼物@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN=BIN
Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_icon.imageset/礼物@2x.png


BIN=BIN
Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_icon.imageset/礼物@3x.png


+ 22 - 0
Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_icon_disabel.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "礼物@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "礼物@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN=BIN
Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_icon_disabel.imageset/礼物@2x.png


BIN=BIN
Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_icon_disabel.imageset/礼物@3x.png


+ 22 - 0
Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_usedTag.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "蒙版组 6097@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "蒙版组 6097@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN=BIN
Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_usedTag.imageset/蒙版组 6097@2x.png


BIN=BIN
Asteria/Fuction/UserCenter/UserCenter.xcassets/giftCard/mine_giftcard_usedTag.imageset/蒙版组 6097@3x.png


+ 2 - 2
Asteria/Fuction/UserCenter/UserCenterHome/ASUserCenterViewController.m

@@ -11,6 +11,7 @@
 #import "KWMineHomeOrderListCell.h"
 #import "KWMineMoreProductsCell.h"
 #import "ASCouponsListViewController.h"
+#import "ASGiftCardListViewController.h"
 #import "ASPointsHomeViewController.h"
 #import "ASVipCenterViewController.h"
 #import "ASMessageListViewController.h"
@@ -61,8 +62,7 @@
             }
                 break;
             case 1: {
-                ASCouponsListViewController *vc = [[ASCouponsListViewController alloc] init];
-                vc.isCard = true;
+                ASGiftCardListViewController *vc = [[ASGiftCardListViewController alloc] init];
                 [weakSelf.navigationController pushViewController:vc animated:true];
             }
                 break;