购物车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); } } }
性能问题
购买一个商品,却需要将整个列表都遍历一遍.
这样做性能很差,且不实际。
网友评论