IOS購(gòu)物車(chē)tableview

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];
    }
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容