美文网首页
day11-购物车06-清空和购买

day11-购物车06-清空和购买

作者: js_huh | 来源:发表于2020-07-15 16:23 被阅读0次

    购物车01-搭建基本骨架
    购物车02-圆角按钮处理
    购物车03-显示数据
    购物车04-加号减号点击处理
    购物车05-通知的应用

    NSNotification - 通知
    NSNotificationCenter - 通知中心
    模拟通知


    是什么?

    思路:

    '清空购物车'怎么实现呢?

    • 总价清零
    • cell清零
      将'购买数量'清零, 刷新单元格
      - (IBAction)cleanBuy:(id)sender {
      self.totalLabel.text = @"0"; // 总价清零
      //数据源,里面更改'购买数量'
      for (Wine *wine in self.wineData) {
         wine.count = 0;
      }
      //刷新
      [self.tableView reloadData];
      }
      

    注意: reloadData方法,其实就是调用tableView: cellForRowAtIndexPath:方法。
    '购买'怎么实现呢?

    • 购买的状态
      购买总价为零,'购买'的状态为不可用 !
      清除购物车时,'购买'的状态为不可用 !
      • 获取 ➖ 通知时, 判断'总价'(total)是否为0。
        为 0 则, "购买按钮" 不可使用!
        -(void)minusTotal:(NSNotification *) notice {
            //'购买按钮'的状态
            self.shop.enabled = total > 0;
        }
        
      点击➕ 按钮时,"购买按钮"可用 !
      • 获取➕ 通知时, "购买按钮"可用
        -(void)plusTotal:(NSNotification *) notice {
         self.shop.enabled = YES;
         }
        
    • 点击购买,打印"购买产品","购买数量"
       - (IBAction)shopClick:(id)sender {
       // 获取购买的cell
       for (Wine * wine in self.wineData) {
         if(wine.count){// 购买数量 >0 时
             NSLog(@"商品: %@",wine.name);
             NSLog(@"购买了 %d 件",wine.count);
           } } }
      

    性能问题

    购买一个商品,却需要将整个列表都遍历一遍.
    这样做性能很差,且不实际。

    相关文章

      网友评论

          本文标题:day11-购物车06-清空和购买

          本文链接:https://www.haomeiwen.com/subject/htrzcktx.html