关于淘宝购物车的界面搭建

电商类的都可能会用到购物车,这篇博客就是关于购物车的搭建问题,

首先购物车的展示tableViewCell 、编辑购物车、删除购物车里面的商品、以及选择商品的结算问题,

主要的核心问题就是每次添加商品后都要计算一次商品总价。。。。

话不多说,直接看代码,

因为是自己写demo 所以 我们要自己构建数据:

我们的数据里面主要包含了:(商品的名称、价格和图片,三个信息)

for (int i = 0; i < 3; i ++) {
        
        NSMutableDictionary *infoDict = [[NSMutableDictionary alloc]init];
        
        [infoDict setValue:@"2.png" forKey:@"imageName"];
        [infoDict setValue:@"商品标题" forKey:@"goodsTitle"];
        [infoDict setValue:@"50" forKey:@"goodsPrice"];
        [infoDict setValue:[NSNumber numberWithBool:NO] forKey:@"selectState"];
        
        [infoDict setValue:[NSNumber numberWithInt:1] forKey:@"goodsNum"];
        
        //封装数据模型
        
        GoodsModel *model = [[GoodsModel alloc]initWithDict:infoDict];
        
        //将数据模型放入数组
        [self.infoArr addObject:model];
    }

此处的model类是自己写的它里面包含了关于商品的一些信息,

并且我们初始化一个减号方法,用来存储数据模型

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

这样,我们就有了自己的商品数据

接下来 我们布局,这个就不用多说了,Xib、storyboard或者纯代码都可以

最主要的一点是商品信息里面会有一个增加、减少商品数量的button。。。。

布局完成之后 cell赋值,

这会我们的难点和重点就要来了,

每次选择商品之后都要计算一次总价,

总价 = 商品数量  *  商品单价

- (void)addPrice

{

//遍历整个数据源、并且判断如果是选中的商品、就计算价格(单价 * 商品数量)
    for (int i = 0; i < _infoArr.count; i ++) {
        
        GoodsModel *model = [_infoArr objectAtIndex:i];
        
        if (model.selectState) {
            
            //总价 = 商品数量 * 商品单价
            allPrice = allPrice + model.goodsNum * [model.goodsPrice intValue];
        }
    }
    
    //给文本赋值
    _allPriceLab.text = [NSString stringWithFormat:@"%.2f", allPrice];
    
    NSLog(@"%f", allPrice);
    
    //每次计算完总价后清零
    allPrice = 0.0;

}

这样,总价格就计算出来了

计算总价之后 ,我们每次需要他的时候调用即可。。。

当然,删除购物车里面的商品,就更简单了,只需要删除指定的cell,和数组里面cell的数据

刷新表格就可以了。。。

//改变删除按钮的title
-(NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath

{
    return @"删除";
}

//删除购物车里面的内容
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        
        //删除数组里面的商品信息
        [self.infoArr removeObjectAtIndex:indexPath.row];
        
        //删除整个cell
        [self.myTableView deleteRowsAtIndexPaths:[NSMutableArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
    }
}

代码已经上传至git@OSC 有兴趣的兄弟姐妹们可以看下

https://git.oschina.net/ddangPengf/shopping

https://github.com/ddangPengf520/-

至此,一个稍微简单点的购物车就完成了,如果有什么问题,还希望大家可以指出,。。。




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值