iOS tableview的第二页数据刷新特定某个cell数据的解决办法

解决多页面cell刷新数据位置变的问题。

看首页接口(示例)
https://xxxxssssssss/heal/api/heal/plan/list
参数:

QQ20170331-174946.png

QQ20170331-174234@2x.png

这个问题产生的背景是:

1.当第一次请求接口产生的20条数据。再添加计划按钮执行后,
要想刷新当前页面为最新数据,以获得当前计划的userplanid来作为用户添加过的唯一标识,
根据这个标识去设置 ➕ 按钮是否显示。这20条数据构成的是第一页,添加后进行刷新数据相当于,上拉刷新请求,参数还是第一页请求20条即可;

{
  "page_info": {
    "pageNo": 1,
    "pageSize": 20,
    "count": 34
  },
  "ret_msg": "",
  "ret_code": "0",
  "page_data": [
    {
      "id": "e738c5a9794c480cb74cd102afb8d5fd",
      "planname": "缓解大脑疲劳",
      "plandec": "本方案选用脑户穴、风池穴、络却穴、角孙穴、神庭穴5个穴位。脑户穴和神庭穴是督脉穴位,督脉有分支络肾、贯心,养髓安神;角孙穴是手少阳三焦经的穴位,三焦经有通行元气的功能,元气入脑养髓;足太阳膀胱经脉气的气化功能由络却穴进入颅内保障思维运行的能量供应;风池穴是足少阳胆经的穴位,调用少阳之气支持思维的迅捷灵活运行",
      "planimg": "/heal/userfiles/images/FMT/FMT_head_1242x729_脑部头部疲劳封面.jpg",
      "planimg2": "/heal/userfiles/images/FMT/FMT_head_1242x729_脑部头部疲劳封面.jpg",
      "coursecnt": "3",
      "actcnt": "15",
      "acupointcnt": "15",
      "plantype": "0",
      "nounit": "天",
      "cpdays": "3",
      "cptime": "5",
      "daytime": "2",
      "planlev": "2",
      "senddatetime": "2017-03-23 16:38:05",
      "version": "1.02",
      "myplan": "1",
      "userplanid": "b9e22dd089954cf9811a9c00686296d1",
      "mycpdays": "0",
      "plandeclist": [
        {
          "plandecl": "本方案选用脑户穴、风池穴、络却穴、角孙穴、神庭穴5个穴位。脑户穴和神庭穴是督脉穴位,督脉有分支络肾、贯心,养髓安神;角孙穴是手少阳三焦经的穴位,三焦经有通行元气的功能,元气入脑养髓;足太阳膀胱经脉气的气化功能由络却穴进入颅内保障思维运行的能量供应;风池穴是足少阳胆经的穴位,调用少阳之气支持思维的迅捷灵活运行"
        },
        {
          "plandecl": "【推荐频次】\r\n1.每天2次\r\n2.脑紧张疲劳时,可随时使用方案"
        },
        {
          "plandecl": "【按摩要点】\r\n1.身体处于放松状态\r\n2. 按摩力量不要过大,不要弄伤自己,建议使用3分力 \r\n3. 按摩时,手指累了,可以换一个手指继续按摩"
        },
        {
          "plandecl": "【按摩禁忌】\r\n1.有溃破、伤肿的部位,不要伤及破损,可以按摩对侧的位置\r\n2.医嘱建议不适宜按摩的人群"
        },
        {
          "plandecl": "【友情提示】\r\n1.按摩过程中可能出现穴位酸痛、胀痛,这是穴位已经发生瘀赌,应长期坚持按摩,消散瘀赌,从而化解由此累积的疾病隐患\r\n2.有严重头痛、头晕症状的,请及时到医院就诊,查明病因,遵医嘱,积极治疗\r\n3. 本方案可长期使用"
        }
      ]
    },
    {
      "id": "08bf634acad947e096972321a4a09701",
      "planname": "缓解颈疲劳",
      "plandec": "",
      "planimg": "/heal/userfiles/images/FMT/颈椎.jpeg",
      "planimg2": "/heal/userfiles/images/FMT/颈椎.jpeg",
      "coursecnt": "3",
      "actcnt": "15",
      "acupointcnt": "15",
      "plantype": "0",
      "nounit": "天",
      "cpdays": "3",
      "cptime": "6",
      "daytime": "2",
      "planlev": "2",
      "senddatetime": "2017-02-19 08:34:39",
      "version": "1.03",
      "myplan": "1",
      "userplanid": "15843782c91e4dfda02a0441442fecc5",
      "mycpdays": "0",
      "plandeclist": [
        {
          "plandecl": "【说明】\r\n本计划选用“祛风解肌养颈椎”近端取穴方案,5个穴位:大椎穴、风府穴、风池穴、完骨穴、颈百劳。其中大椎穴和风府穴是督脉的穴位,督脉总督一身阳气,滋养颈椎;风池穴、完骨穴是足少阳胆经的穴位,少阳经的开合特点,以强化颈椎的活动功能;颈百劳是经外奇穴,选用拿揉颈百劳的手法,放松颈部的肌肉群;在中华传统文化对人体的认知体系里,风寒的侵袭滞留,是疼痛的重要隐患,风池穴、风府穴的选用,可以祛风消痛"
        },
        {
          "plandecl": "【推荐频次】\r\n1.每天2次\r\n2.颈部紧张、疲劳、疼痛时,可随时使用方案"
        },
        {
          "plandecl": "【按摩要点】\r\n1.颈肩处于放松状态\r\n2. 按摩力量不要过大,不要弄伤自己,建议使用3分力\r\n3. 按摩时,手指累了,可以换一个手指按摩"
        },
        {
          "plandecl": "【按摩禁忌】\r\n1.有溃破、伤肿的部位,不要伤及破损,可以按摩对侧的位置\r\n2.医嘱建议不适宜按摩的人群"
        },
        {
          "plandecl": "【友情提示】\r\n1.按摩过程中可能出现局部酸痛、胀痛,是穴位已经瘀赌,应长期坚持按摩,消散瘀赌,从而化解由此累积的各类隐患\r\n2.有严重颈椎疼痛症状的,请及时到医院就诊,查明病因,遵医嘱,积极治疗"
        }
      ]
    },。。。。。。。。

2.当处于第二页的时候,点击添加计划按钮 ➕ 时,
再次请求数据的时候参数如果再是请求第一页的时候的就不行了,
这时要根据当前页currentpage来算需要的数据条数,
因为处于当前页的时候正常是40条数据了,所以这次请求就应传参数为pagesize = 40,
而页码传写死的pageno= 1;

{
  "page_info": {
    "pageNo": 1,
    "pageSize": 40,
    "count": 34
  },
  "ret_msg": "",
  "ret_code": "0",
  "page_data": [
    {
      "id": "e738c5a9794c480cb74cd102afb8d5fd",
      "planname": "缓解大脑疲劳",
      "plandec": "本方案选用脑户穴、风池穴、络却穴、角孙穴、神庭穴5个穴位。脑户穴和神庭穴是督脉穴位,督脉有分支络肾、贯心,养髓安神;角孙穴是手少阳三焦经的穴位,三焦经有通行元气的功能,元气入脑养髓;足太阳膀胱经脉气的气化功能由络却穴进入颅内保障思维运行的能量供应;风池穴是足少阳胆经的穴位,调用少阳之气支持思维的迅捷灵活运行",
      "planimg": "/heal/userfiles/images/FMT/FMT_head_1242x729_脑部头部疲劳封面.jpg",
      "planimg2": "/heal/userfiles/images/FMT/FMT_head_1242x729_脑部头部疲劳封面.jpg",
      "coursecnt": "3",
      "actcnt": "15",
      "acupointcnt": "15",
      "plantype": "0",
      "nounit": "天",
      "cpdays": "3",
      "cptime": "5",
      "daytime": "2",
      "planlev": "2",
      "senddatetime": "2017-03-23 16:38:05",
      "version": "1.02",
      "myplan": "0",
      "userplanid": "0",
      "mycpdays": "0",
      "plandeclist": [
        {
          "plandecl": "本方案选用脑户穴、风池穴、络却穴、角孙穴、神庭穴5个穴位。脑户穴和神庭穴是督脉穴位,督脉有分支络肾、贯心,养髓安神;角孙穴是手少阳三焦经的穴位,三焦经有通行元气的功能,元气入脑养髓;足太阳膀胱经脉气的气化功能由络却穴进入颅内保障思维运行的能量供应;风池穴是足少阳胆经的穴位,调用少阳之气支持思维的迅捷灵活运行"
        },
        {
          "plandecl": "【推荐频次】\r\n1.每天2次\r\n2.脑紧张疲劳时,可随时使用方案"
        },
        {
          "plandecl": "【按摩要点】\r\n1.身体处于放松状态\r\n2. 按摩力量不要过大,不要弄伤自己,建议使用3分力 \r\n3. 按摩时,手指累了,可以换一个手指继续按摩"
        },
        {
          "plandecl": "【按摩禁忌】\r\n1.有溃破、伤肿的部位,不要伤及破损,可以按摩对侧的位置\r\n2.医嘱建议不适宜按摩的人群"
        },
        {
          "plandecl": "【友情提示】\r\n1.按摩过程中可能出现穴位酸痛、胀痛,这是穴位已经发生瘀赌,应长期坚持按摩,消散瘀赌,从而化解由此累积的疾病隐患\r\n2.有严重头痛、头晕症状的,请及时到医院就诊,查明病因,遵医嘱,积极治疗\r\n3. 本方案可长期使用"
        }
      ]
    },。。。。。

3.能理解多少算多少吧;
下边上代码:

/** 记录添加计划操作 */
@property (nonatomic,assign) BOOL isAddPlan;
- (void)loadNewPlan{
###这里这里!!!!!*************************
    _isAddPlan = NO;
    NSLog(@"下拉刷新");
    _page = 0;
    _pagesize = 20;
    NSLog(@"下拉更新显示第%d页",_page+1);//下拉刷新更新显示第一页的数据
    [self requestData:self.tb UP_Refresh:YES];
}
- (void)loadMorePlan{
   ###这里这里!!!!!*************************
    _isAddPlan = NO;
 
    NSLog(@"上拉加载");
    [self requestData:self.tb UP_Refresh:NO];
}
- (NSDictionary *)Parameters{
    NSDictionary *parameters = [NSDictionary dictionary];
    NSString *page = [NSString stringWithFormat:@"%d",_page + 1];
    NSString *pageSize = [NSString stringWithFormat:@"%d",_pagesize];
    if (_isAddPlan == YES) {
    ###这里这里!!!!!*************************
        parameters = @{
                       @"pageNo":@"1",
                       @"pageSize":[NSString stringWithFormat:@"%d",_page*20],
                       @"accesstoken":UserInfoShare.accesstoken
                       };
        return parameters;

    }
    if (!UserInfoShare_accesstoken) {
        parameters = @{
                       @"pageNo":page,
                       @"pageSize":pageSize
                       };
    } else {
        parameters = @{
                       @"pageNo":page,
                       @"pageSize":pageSize,
                       @"accesstoken":UserInfoShare.accesstoken
                       };
    }
    return parameters;

}
- (void)requestData:(UITableView *)tb UP_Refresh:(BOOL)upRefresh{
    HLWeakSelf;
    [[XDHTTPSessionManager shareManager] RequestWithType:XDHttpRequestTypePost UrlString:API_HomeUrl Parameters:[self Parameters] progress:^(NSProgress *progress) {
        
        
    } SuccessBlock:^(id responseObject) {
        NSLog_responseObject;
        if (ret_code_success) {
            if (upRefresh == YES) {
                //下拉刷新显示第一页的数据
                weakSelf.dataArraynet = [HLPlanManager mj_objectArrayWithKeyValuesArray:responseObject[@"page_data"]];
                
                
            }else if (upRefresh == NO){
                //上拉加载
                NSArray *newPlanArray = [HLPlanManager mj_objectArrayWithKeyValuesArray:responseObject[@"page_data"]];
                [weakSelf.dataArraynet addObjectsFromArray:newPlanArray];
                
            }
###这里这里!!!!!*************************
            if (_isAddPlan == YES) {
                
            } else {
                
                _pagesize = [responseObject[@"page_info"][@"pageSize"] intValue];
                _page_count =[responseObject[@"page_info"][@"count"] intValue];
                _page = [responseObject[@"page_info"][@"pageNo"] intValue];
            }
        }else{
            //失败
            if(ret_wrong_accesstoken){
                [weakSelf checkAccessToken_responseObject:responseObject andSuccess:^{
                    //重新请求
                    [weakSelf requestData:tb UP_Refresh:NO];
                } andFailer:^{
                    [weakSelf loginoutFromRoot];
                }];
            }else if (ret_code_failer){
//                [MBProgressHUD showMessage:ret_msg];
            }
        }
        //                // ==写入文件
        

        BOOL isWriteSuess = [[weakSelf.dataArraynet yy_modelToJSONObject] writeToFile:weakSelf.Json_path atomically:YES];
        NSLog(@"发现计划列表写入文件%@",isWriteSuess ? [NSString stringWithFormat:@"成功 路径是%@",weakSelf.Json_path]:@"失败");
        upRefresh == YES?[tb.mj_header endRefreshing]:[tb.mj_footer endRefreshing];
        [tb reloadData];
        
    } FailureBlock:^(NSError *error) {
        
        upRefresh == YES?[tb.mj_header endRefreshing]:[tb.mj_footer endRefreshing];
        [tb reloadData];
        
    }];
    
    
}
#pragma mark - <UITableViewDelegate,UITableViewDataSource>
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *cellID = @"cellName";
    HLPlanTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
    if (cell == nil) {
        cell = [[[NSBundle mainBundle] loadNibNamed:@"HLPlanTableViewCell" owner:self options:nil] lastObject];
    }
    cell.progress.hidden = YES;
    [cell.addButton addTarget:self action:@selector(cellBtnClicked:event:) forControlEvents:UIControlEventTouchUpInside];
    cell.addButton.tag  = indexPath.row+100;
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    cell.manager = self.dataArraynet[indexPath.row];

    return cell;
    
}
- (void)cellBtnClicked:(id)sender event:(id)event
{
    
    HLWeakSelf;
    [XDControl CheckshifouNeedToLoginBlock:^{
        //去登录
        HLLoginsViewController *loginVC = [HLLoginsViewController new];
        loginVC.isShow = YES;
        [weakSelf presentViewController:loginVC animated:YES completion:nil];
    } LoginSusess_Or_NoNeedLoginBlock:^{
         //登录成功  或者不需要登录 回来执行 该执行的 比如这里执行 添加
        NSSet *touches =[event allTouches];
        UITouch *touch =[touches anyObject];
        CGPoint currentTouchPosition = [touch locationInView:weakSelf.tb];
        NSIndexPath *indexPath= [weakSelf.tb indexPathForRowAtPoint:currentTouchPosition];
        if (indexPath!= nil)
        {
            NSLog(@"添加第:%ld行的ID给我的计划列表😄",(long)indexPath.row);
            NSString *addplanid = [weakSelf.dataArraynet[indexPath.row] id];
            //统计点击行为各属性被触发的次数  统计应用中“添加”事件发生的次数,以及添加的计划名字及id,那么在添加计划的函数里调用:
            NSDictionary *dict = @{@"planname" : [weakSelf.dataArraynet[indexPath.row] planname], @"id" : addplanid};
            [MobClick event:@"AddPlanName" attributes:dict];
            
            
            NSDictionary *parameters = @{
                                         @"accesstoken":UserInfoShare.accesstoken,
                                         @"planid":addplanid
                                         };
            HLWeakSelf;
            [[XDHTTPSessionManager shareManager] RequestWithType:XDHttpRequestTypePost UrlString:API_addMyplanUrl Parameters:parameters progress:^(NSProgress *progress) {
                
            } SuccessBlock:^(id responseObject) {
                //            responseObject=={
                //                ret_msg = "wrong access token";
                //                ret_code = "999"
                //            }
                
                NSLog_responseObject;
                if (ret_code_success) {
                    //加入计划成功
                    [MBProgressHUD showSuccess:ret_msg];
###这里这里!!!!!*************************
                    _isAddPlan = YES;
                    [weakSelf requestData:weakSelf.tb UP_Refresh:YES];
                    //               UIButton *button =  [self.view viewWithTag:indexPath.row+100];
                    //                button.hidden = YES;
                }else if(ret_code_failer){
                    [MBProgressHUD showError:ret_msg];
                    //加入计划失败
                }else if(ret_wrong_accesstoken){
                    [weakSelf checkAccessToken_responseObject:responseObject andSuccess:^{
                        //重新请求
                        [weakSelf cellBtnClicked:sender event:event];
                    } andFailer:^{
                        [weakSelf loginoutFromRoot];
                    }];
                }
                
                
            } FailureBlock:^(NSError *error) {
                
            }];
        }

    }];

    
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,657评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,662评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,143评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,732评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,837评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,036评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,126评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,868评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,315评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,641评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,773评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,859评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,584评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,676评论 2 351

推荐阅读更多精彩内容

  • 如果需要原文档(因文体限制,部分表格无法呈现)请联系QQ1769090563 本文由中医仲景协会整理收集 《内经选...
    陶墨阅读 34,290评论 0 33
  • 经络 中医上说,经络是运行气血、联系脏腑和体表及全身各部的通道,是人体功能的调控系统。经络学也是人体针灸和按摩的基...
    code_w阅读 3,522评论 0 10
  • 单穴主治范围 (1)公孙:为足太阴脾经络穴,联络足阳明胃经,通冲脉。具有理气健脾、和胃降逆、调畅气机的作用。其主治...
    侠骨丹心阅读 1,342评论 0 4
  • 今天收到CORRIN同学DE 一个会计提问,时间比较紧,所以一下内容简单粗暴、十分枯燥。 问题如下:售后...
    雪绒花与蚊子阅读 323评论 0 2
  • 重聚如何思不堪,幸当欢快共深谈。 卅年鬓染千茎雪,半日杯衔一醉酣。 心在此时犹领解,身于他处亦祥谙。 亲情难舍从别...
    雪窗_武立之阅读 1,321评论 0 5