[IOS]刷新tableview后不丢失cell的selected状态

1.核心语句:

[_tableView reloadData];
 [_tableView layoutIfNeeded];//重置约束

 刷新table地方后面添加:

   NSIndexPath *ip = [NSIndexPath indexPathForRow:0 inSection:_lastSelectRow];
    [_tableView selectRowAtIndexPath:ip animated:YES scrollPosition:UITableViewScrollPositionNone];

因为在我的代码中,每一行是一个section,一个section只有一行,所以在inSection中传入 indexPath.section的值。又因为reloadData后,indexPath.section会重置为0,所以只要用一个变量记录你当前点击的是哪个section即可,例如:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    

    switch (indexPath.section) {
        case 0:
        {
            _lastSelectRow = indexPath.section;
            [self callNotificationReceiver:@"0"];
            break;
        }
。。。。。。。。

猜你喜欢

转载自jameskaron.iteye.com/blog/2395867