IMG_4721.PNG
- 創(chuàng)建一個(gè)繼承于tableViewCell的子類(lèi)WineCell,在.h創(chuàng)建一個(gè)代理,在點(diǎn)擊加號(hào)或者減號(hào)的時(shí)候,通知代理來(lái)實(shí)時(shí)改變總價(jià),
@class Wine ,WineCell;
@protocol WineCellDelegate <NSObject>
@optional
- (void)wineCellDidClickPlusButton:(WineCell *)cell;
- (void)wineCellDidClickMinusButton:(WineCell *)cell;
@end
@interface WineCell : UITableViewCell
/** 模型*/
@property (nonatomic, strong) Wine *wine;
/** 代理屬性*/
@property (nonatomic, weak) id<WineCellDelegate> delegate;
@end
- .m中
- (IBAction)plusButtonClick {
// 1.修改模型
self.wine.count ++ ;
// 2.修改界面
self.countLabel.text = [NSString stringWithFormat:@"%d",self.wine.count];
// 3.減號(hào)按鈕能點(diǎn)擊
self.minusButton.enabled = YES;
// 4.通知代理(調(diào)用代理的方法)
if ([self.delegate respondsToSelector:@selector(wineCellDidClickPlusButton:)]) {
[self.delegate wineCellDidClickPlusButton:self];
}
}
/**
* 減號(hào)點(diǎn)擊
*/
- (IBAction)minusButtonClick {
// 1.修改模型
self.wine.count -- ;
// 2.修改界面
self.countLabel.text = [NSString stringWithFormat:@"%d",self.wine.count];
// 3.控制減號(hào)按鈕是否能點(diǎn)擊
if (self.wine.count == 0) {
self.minusButton.enabled = NO;
}
// 4.通知代理(調(diào)用代理的方法)
if ([self.delegate respondsToSelector:@selector(wineCellDidClickMinusButton:)]) {
[self.delegate wineCellDidClickMinusButton:self];
}
}
#pragma mark - WineCellDelegate
- (void)wineCellDidClickPlusButton:(WineCell *)cell
{
// 計(jì)算總價(jià)
int totalPrice = self.totalPriceLabel.text.intValue + cell.wine.money.intValue;
// 設(shè)置總價(jià)
self.totalPriceLabel.text = [NSString stringWithFormat:@"%d",totalPrice];
// 購(gòu)買(mǎi)按鈕一定能點(diǎn)擊
self.buyButton.enabled = YES;
// 之前沒(méi)有添加過(guò),才添加
if (![self.shoppingCar containsObject:cell.wine]) {
[self.shoppingCar addObject:cell.wine];
}
}
- (void)wineCellDidClickMinusButton:(WineCell *)cell
{
// 計(jì)算總價(jià)
int totalPrice = self.totalPriceLabel.text.intValue - cell.wine.money.intValue;
// 設(shè)置總價(jià)
self.totalPriceLabel.text = [NSString stringWithFormat:@"%d",totalPrice];
// 購(gòu)買(mǎi)按鈕是否能點(diǎn)擊
self.buyButton.enabled = totalPrice > 0;
// 移除用戶不需要在買(mǎi)的酒
if (cell.wine.count == 0) {
[self.shoppingCar removeObject:cell.wine];
}
}