IOS

关注公众号 jb51net

关闭
首页 > 软件编程 > IOS > iOS购物车页面

iOS搭建简易购物车页面

作者:azhang_coder

这篇文章主要为大家详细介绍了iOS搭建简易购物车页面,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了iOS实现简单购物车页面的搭建,供大家参考,具体内容如下

1.基础页面的搭建

@property (weak, nonatomic) IBOutlet UIImageView *iconView;
@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
@property (weak, nonatomic) IBOutlet UILabel *priceLabel;
@property (weak, nonatomic) IBOutlet UILabel *countLabel;
@property (weak, nonatomic) IBOutlet AZWineButton *minusBtn;
-(void)awakeFromNib
{
    self.layer.borderWidth=1;
    self.layer.borderColor=[UIColor orangeColor].CGColor;
    self.layer.cornerRadius=self.frame.size.width*0.5;
}

2.加载模型数据

-(NSMutableArray *)wineArray
{
    if (!_wineArray) {
        // 获得路径
        NSString *path=[[NSBundle mainBundle]pathForResource:@"wine.plist" ofType:nil];
        // 获得数组
        NSArray *array=[NSArray arrayWithContentsOfFile:path];
        // 创建一个临时数组存放模型数据
        NSMutableArray *tempArray=[NSMutableArray array];
        // 添加模型
        for (NSDictionary *dict in array) {
            //字典转模型
            AZWine *wine=[AZWine wineWithDict:dict];
            // 实现对wine模型内num值变化的监听
            [wine addObserver:self forKeyPath:@"num" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil];
            [tempArray addObject:wine];
        }
        _wineArray=tempArray;

    }
    return _wineArray;;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    // 绑定标识
    static NSString *ID=@"wine";
    // 创建cell
    AZWineCell *cell=[tableView dequeueReusableCellWithIdentifier:ID];
    // 给cell注入数据
    cell.wine=self.wineArray[indexPath.row];
    // 返回cell
    return cell;
}
-(void)setWine:(AZWine *)wine
{
    _wine=wine;

    self.iconView.image=[UIImage imageNamed:wine.image];
    self.nameLabel.text=wine.name;
    self.priceLabel.text=wine.money;
    self.countLabel.text=[NSString stringWithFormat:@"%zd",wine.num];
    self.minusBtn.enabled=(wine.num>0);

}

3.设置代理,实现对按钮点击事件的监听

@protocol AZWineCellDelegate <NSObject>

@optional
/*增加商品按钮的点击*/
-(void)wineCellDidClickPlusButton:(AZWineCell *)cell;
/*删减商品按钮的点击*/
-(void)wineCellDidClickMinusButton:(AZWineCell *)cell;
@end

@interface AZWineCell : UITableViewCell
/*模型*/
@property(nonatomic,strong)AZWine *wine;
/*设置代理*/
@property(nonatomic, weak) id<AZWineCellDelegate> delegate;

@end
- (IBAction)minusClick {
    // 修改模型
    self.wine.num--;
    // 修改界面
    self.countLabel.text=[NSString stringWithFormat:@"%zd",self.wine.num];
    // 按钮是否可以点击
    if (self.wine.num==0) {
        self.minusBtn.enabled=NO;
    }
    // 通知代理
    if([self.delegate respondsToSelector:@selector(wineCellDidClickMinusButton:)]){
        [self.delegate wineCellDidClickMinusButton:self];
    }

}
- (IBAction)plusClick {
    // 修改模型
    self.wine.num++;
    // 修改界面
    self.countLabel.text=[NSString stringWithFormat:@"%zd",self.wine.num];
    // 按钮是否可以点击
    self.minusBtn.enabled=YES;
    // 通知代理
    if ([self.delegate respondsToSelector:@selector(wineCellDidClickPlusButton:)]) {
        [self.delegate wineCellDidClickPlusButton:self];
    }
}
-(void)wineCellDidClickPlusButton:(AZWineCell *)cell
{
    // 计算总价
    int totalPrice=self.totalPriceView.text.intValue+cell.wine.money.intValue;
    // 刷新界面
    self.totalPriceView.text=[NSString stringWithFormat:@"%d",totalPrice];
    // 购买按钮
    self.purchaseBtn.enabled=YES;
    // 购物车
    if (![self.shoppingList containsObject:cell.wine]) {
        [self.shoppingList addObject:cell.wine];
    }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文