iOS关于在对UITableView上的某个cell进行操作后进行数据源和界面的修改

iOS关于在对UITableView上的某个cell进行操作后进行数据源和界面的修改

在对UITableView上的某个cell进行操作,比如点击下cell上的某个按钮,然后执行操作,操作成功后一般需要进行如下修改:

1.修改UITableView对应的数据源;

2.修改本次操作对应的cell界面内容,例如变换下点击按钮的图片,修改界面可以有2种方式

2.1 直接手动修改界面;

2.2 (推荐使用)使用reload方法修改,- (void)reloadRowsAtIndexPaths:(NSArray<NSIndexPath *> * _Nonnull)indexPaths withRowAnimation:(UITableViewRowAnimation)animation ,还有系统自带的修改动画效果。(注意:请勿直接调用   -(void)reload方法,该方法会刷新整个UITableView,效率低下)

-(void) _doAttentionIt :(UIButton *)sender andWithObject :(BOMatch*) match andWithIndexPath : (NSIndexPath*) indexPath {
   
    //这里省略掉网络请求代码
    [MyHttpRequest doPost:dic1 andBlock:^(NSMutableDictionary *responseData) {
        NSString* err = [KGQCheckResultCode checkResultCode:responseData];
        if (err) {
            NSLog(err);//网络请求失败
        }else{
            match.attentionState=2; //match是数据源中的元素,修改其属性的值就相当于修改了数据源
//            [sender setImage:[UIImage imageNamed:@"new.png"] forState:UIControlStateNormal]; //直接手动修改界面
            [self.mTableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationBottom]; //采用reloadRowsAtIndexPaths方法修改界面
            NSLog(@"成功");
        }
    }];
}

猜你喜欢

转载自stephen830.iteye.com/blog/2245817
今日推荐