IOS开发基础之UI基础的团购源码完整版本

IOS开发基础之UI基础的团购源码完整版本

IOS开发基础之UI基础的团购源码完整版本_第1张图片
IOS开发基础之UI基础的团购源码完整版本_第2张图片
IOS开发基础之UI基础的团购源码完整版本_第3张图片
IOS开发基础之UI基础的团购源码完整版本_第4张图片
IOS开发基础之UI基础的团购源码完整版本_第5张图片
IOS开发基础之UI基础的团购源码完整版本_第6张图片

//
//  ViewController.m
//  17-团购案例
//
//  Created by 鲁军 on 2021/2/4.
//

#import "ViewController.h"
#import "CZGoods.h"
#import "CZGoodsCell.h"
#import "CZFooterView.h"
#import "CZHeaderView.h"


@interface ViewController ()<UITableViewDataSource,CZFooterViewDelegate>

@property(nonatomic,strong)NSMutableArray *goods;
@property (weak, nonatomic) IBOutlet UITableView *tableView;

@end

@implementation ViewController


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
     
    
    
    CZGoods *model = self.goods[indexPath.row];
    
    
//    static NSString *ID= @"goods_cell";
//
//    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
//    if(cell==nil){
     
//
//        cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ID];
//
//    }
//    cell.imageView.image = [UIImage imageNamed:model.icon];
//    cell.textLabel.text = model.title
//    ;
//    cell.detailTextLabel.text = [NSString stringWithFormat:@"¥ %@      %@人已购买",model.price,model.buyCount];
    
    CZGoodsCell *cell = [CZGoodsCell goodsCellWithTableView:tableView];
    
    
    
    cell.goods = model;
    
    
    
    
  
    
    
    
    return cell;
    
}


- (BOOL)prefersStatusBarHidden{
     
    return YES;
}

//- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
     
//    return  1;
//}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
     
    
    return self.goods.count;
    
}

- (NSMutableArray *)goods{
     
    
    if(_goods==nil){
     
        
        NSString *path = [[NSBundle mainBundle] pathForResource:@"tgs.plist" ofType:nil];
        NSArray *arrayDict = [NSArray arrayWithContentsOfFile:path];
        NSMutableArray *attayModles = [NSMutableArray array];
        for(NSDictionary *dict in arrayDict){
     
            CZGoods *model = [CZGoods goodsWithDict:dict];
            [attayModles addObject:model];
        }
        _goods = attayModles;
        
    }
    
    return _goods;
}

#pragma 代理方法
- (void)footerViewUpdateData:(CZFooterView *)footerView{
     
    
    CZGoods *model=[[CZGoods alloc] init];
    
    model.title = @"驴肉火烧";
    model.price=@"6.0";
    model.buyCount = @"1234";
    model.icon = @"d40878ee9d97a53bd4b8778daa11d38d.png";
    
    [self.goods addObject:model];
    
    [self.tableView reloadData];
    
    
    //加载完毕向上滚动一下;
    
    NSIndexPath *idxPath = [NSIndexPath indexPathForRow:self.goods.count-1 inSection:0];
    [self.tableView scrollToRowAtIndexPath:idxPath atScrollPosition:UITableViewScrollPositionTop animated:YES];
    
    
    
}



- (void)viewDidLoad {
     
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    self.tableView.rowHeight = 60;
    
//    UIButton *btn = [UIButton buttonWithType:UIButtonTypeContactAdd];
//    btn.backgroundColor=[UIColor yellowColor];
//
//    btn.frame = CGRectMake(20, 50, 30, 100);
//
//
//    self.tableView.tableFooterView=btn;
    
//   CZFooterView *footerView =  [[[NSBundle mainBundle] loadNibNamed:@"CZFooterView" owner:nil options:nil] lastObject];
//    
    
    CZFooterView *footerView = [CZFooterView footerView];
    
    
    footerView.delegate = self;
    
    self.tableView.tableFooterView = footerView;
    
//    CZHeaderView *headerView = [[[NSBundle mainBundle] loadNibNamed:@"CZHeaderView" owner:nil options:nil] firstObject];
//
    
    CZHeaderView *headerView = [CZHeaderView headerView];
    
    
    self.tableView.tableHeaderView=headerView;
    
    
    
    
}


@end

//
//  CZGoods.h
//  17-团购案例
//
//  Created by 鲁军 on 2021/2/4.
//

#import 

NS_ASSUME_NONNULL_BEGIN

@interface CZGoods : NSObject

@property(nonatomic,copy)NSString *buyCount;
@property(nonatomic,copy)NSString *price;
@property(nonatomic,copy)NSString *title;
@property(nonatomic,copy)NSString *icon;

-(instancetype)initWithDict:(NSDictionary *)dict;
+(instancetype)goodsWithDict:(NSDictionary *)dict;


@end

NS_ASSUME_NONNULL_END

//
//  CZGoods.m
//  17-团购案例
//
//  Created by 鲁军 on 2021/2/4.
//

#import "CZGoods.h"

@implementation CZGoods
-(instancetype)initWithDict:(NSDictionary *)dict{
     
    if(self=[super init]){
     
        [self setValuesForKeysWithDictionary:dict];
        
        
    }
    
    return self;
}
+(instancetype)goodsWithDict:(NSDictionary *)dict{
     
    return [[self alloc] initWithDict:dict];
}
@end

//
//  CZGoodsCell.h
//  17-团购案例
//
//  Created by 鲁军 on 2021/2/4.
//

#import 

NS_ASSUME_NONNULL_BEGIN

@class CZGoods;
@interface CZGoodsCell : UITableViewCell


@property(nonatomic,strong)CZGoods *goods;


+(instancetype)goodsCellWithTableView:(UITableView *)tableView;


@end

NS_ASSUME_NONNULL_END

//
//  CZGoodsCell.m
//  17-团购案例
//
//  Created by 鲁军 on 2021/2/4.
//

#import "CZGoodsCell.h"
#import "CZGoods.h"
//类扩展
@interface CZGoodsCell()
@property (weak, nonatomic) IBOutlet UIImageView *imgViewIcon;

@property (weak, nonatomic) IBOutlet UILabel *lblTitle;

@property (weak, nonatomic) IBOutlet UILabel *lblPrice;

@property (weak, nonatomic) IBOutlet UILabel *lblBuyCount;

@end

@implementation CZGoodsCell
+ (instancetype)goodsCellWithTableView:(UITableView *)tableView{
     
    static NSString *ID= @"goods_cell";
    CZGoodsCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
    if(cell==nil){
     
        cell=[[[NSBundle mainBundle] loadNibNamed:@"CZGoodsCell" owner:nil options:nil] firstObject];
        
    }
    return cell;
}




- (void)setGoods:(CZGoods *)goods{
     
    _goods = goods;
    
    self.imgViewIcon.image =[UIImage imageNamed:goods.icon];
    self.lblTitle.text=goods.title;
    self.lblPrice.text=[NSString stringWithFormat:@"¥ %@",goods.price];
    self.lblBuyCount.text=[NSString stringWithFormat:@"%@ 人已购买",goods.buyCount];
    
    
    
}


- (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
}

@end

//
//  CZFooterView.h
//  17-团购案例
//
//  Created by 鲁军 on 2021/2/6.
//

#import 

NS_ASSUME_NONNULL_BEGIN

@class CZFooterView;

@protocol CZFooterViewDelegate <NSObject>
@required
-(void)footerViewUpdateData:(CZFooterView *)footerView;

@end


@interface CZFooterView : UIView

@property(nonatomic,weak)id<CZFooterViewDelegate> delegate;

+(instancetype)footerView;

@end

NS_ASSUME_NONNULL_END

//
//  CZFooterView.m
//  17-团购案例
//
//  Created by 鲁军 on 2021/2/6.
//

#import "CZFooterView.h"

@interface CZFooterView()


@property (weak, nonatomic) IBOutlet UIButton *btnLoadMore;

@property (weak, nonatomic) IBOutlet CZFooterView *watingView;



- (IBAction)btnLoadMoreClick;


@end

@implementation CZFooterView

/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
    // Drawing code
}
*/

- (IBAction)btnLoadMoreClick {
     
    
    self.btnLoadMore.hidden = YES;
    self.watingView.hidden = NO;
    
    
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
     
        if([self.delegate respondsToSelector:@selector(footerViewUpdateData:)]){
     
            [self.delegate footerViewUpdateData:self];
        }
        
        self.btnLoadMore.hidden = NO;
        self.watingView.hidden = YES;
        
    });
    
    
    
    
    
}

+(instancetype)footerView{
     
    CZFooterView *footerView =  [[[NSBundle mainBundle] loadNibNamed:@"CZFooterView" owner:nil options:nil] lastObject];
     
    return footerView;
    
    
}

@end

//
//  CZHeaderView.h
//  17-团购案例
//
//  Created by 鲁军 on 2021/2/6.
//

#import 

NS_ASSUME_NONNULL_BEGIN

@interface CZHeaderView : UIView


+(instancetype)headerView;

@end

NS_ASSUME_NONNULL_END

//
//  CZHeaderView.m
//  17-团购案例
//
//  Created by 鲁军 on 2021/2/6.
//

#import "CZHeaderView.h"

@interface CZHeaderView ()

@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;


@end

@implementation CZHeaderView

- (void)awakeFromNib{
     
    //书写 scroolView 的大小跟内容区域的大小一样大
    
    
    
    
}

+(instancetype)headerView{
     
    
    CZHeaderView *headerView = [[[NSBundle mainBundle] loadNibNamed:@"CZHeaderView" owner:nil options:nil] firstObject];
    
    return headerView;
    
}
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
    // Drawing code
}
*/

@end

需要源码的朋友请私聊我VX: Johnson_Swift

你可能感兴趣的:(IOS,ios)