其他分享
首页 > 其他分享> > IOS开发基础之团购案例17-xib和UITableView两种方式实现

IOS开发基础之团购案例17-xib和UITableView两种方式实现

作者:互联网

IOS开发基础之团购案例17-xib和UITableView两种方式实现

Design By Johnson Shanghai
实现效果
在这里插入图片描述

在这里插入图片描述

系统和Xcode版本
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

注意的细节

在这里插入图片描述

关键性的代码

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

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

@interface ViewController ()<UITableViewDataSource>

@property(nonatomic,strong)NSArray *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;
    
}

- (NSArray *)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;
}
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    self.tableView.rowHeight = 60;
    
    
}


@end

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

#import <Foundation/Foundation.h>

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 <UIKit/UIKit.h>

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

标签:xib,goods,CZGoodsCell,tableView,17,CZGoods,IOS,cell,nonatomic
来源: https://blog.csdn.net/A1521315qwss/article/details/113666591