XZ_iOS之购物车—点击右上角“编辑”按钮,改变所有cell的状态

本文介绍了一种购物车编辑模式的实现方法,包括通过全局和局部Model控制编辑状态的显示和数据更新,以及如何响应用户的编辑操作来改变视图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法一:购物车的实现思路
当前页面由2个model控制着,一个是全局的model(控制全选、编辑等当前页面的操作的显示和数据),另一个是每个cell的model(控制每一个cell的状态);
通过判断全局model中的isEdit状态的,如果全局model.isEdit == YES 点击了“编辑”,则将数组中的所有的cell的model的isEdit的值修改为YES,在Cell中,使用Cell的model的isEdit进行判断,如果是“编辑”状态,则显示编辑状态的View;如果是完成状态,则显示完成状态的View;

当用户点击右上角的“编辑”时:
1、当用户点击“编辑”时,for循环修改cell的model数组中isEdit的状态为YES,往用户点击“完成”时,for循环修改cell的model数组中isEdit的状态为NO。
2、将model传入cell,在Cell中,使用Cell的model的isEdit进行判断,如果是“编辑”状态,则显示编辑状态的View;如果是完成状态,则显示完成状态的View;

当用户点击cell的编辑时:
1、当用户点击“编辑”时,for循环修改cell的model数组中当前点击的这行的model.isEdit的状态为YES,往用户点击“完成”时,for循环修改cell的model数组中当前点击的这行的model.isEdit的状态为NO。
2、将model传入cell,在Cell中,使用Cell的model的isEdit进行判断,如果是“编辑”状态,则显示编辑状态的View;如果是完成状态,则显示完成状态的View。

方法二:
点击右上角的“编辑”按钮,实现cell整体改变状态
                           
创建cell的时候添加监听控制器发出的通知
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString*)reuseIdentifier {
   
if (self= [superinitWithStyle:stylereuseIdentifier:reuseIdentifier]) {
       
// 设置子视图
        [
selfsetTheShopCartVChildView];
       
// 添加监听控制器发出的通知
        [[
NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(didReceiveNotification:)name:@"changeSatue"object:nil];
    }
   
return self;
}
#pragma mark - 处理接受到的通知
- (void)didReceiveNotification:(NSNotification*)notification {
   
NSDictionary *dict = notification.userInfo;
   
NSString *info = dict[@"info"];
   
if ([info isEqualToString:@"编辑"]) {
        [
selfdidClickCompleteBtn];
    }
elseif([infoisEqualToString:@"完成"]) {
        [
selfdidClickEditBtn];
    }
}
- (
void)dealloc {
    [[
NSNotificationCenterdefaultCenter]removeObserver:self];
}
//点击编辑按钮
- (
void)didClickEditBtn{
   
self.normalView.hidden=YES;
   
self.editView.hidden=NO;
}
//点击完成按钮
- (
void)didClickCompleteBtn {
   
self.normalView.hidden=NO;
   
self.editView.hidden=YES;
}
在controller中
//设置导航栏
   self.navigationItem.rightBarButtonItem= [[UIBarButtonItemalloc]initWithTitle:@"编辑"style:UIBarButtonItemStyleDonetarget:selfaction:@selector(editBtAction:)];

#pragma mark -----导航栏的btn点击事件
- (void)editBtAction:(UIBarButtonItem*)buttonItem {
    buttonItem.
title= [buttonItem.titleisEqualToString:@"编辑"] ? @"完成":@"编辑";
   
// 发送一个通知
    [[
NSNotificationCenterdefaultCenter]postNotificationName:@"changeSatue"object:selfuserInfo:@{@"info": buttonItem.title}];
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值