左右表格的联动

//MARK: - 一个方法就能搞定 右边滑动时跟左边的联动

- (void)scrollViewDidScroll:(UIScrollView*)scrollView {


    // 如果是 左侧的 tableView 直接return

    if(scrollView ==self.leftTableView)return;


    // 取出显示在 视图 且最靠上 的 cell 的 indexPath

    NSIndexPath*topHeaderViewIndexpath = [[self.rightTableViewindexPathsForVisibleRows]firstObject];


    // 左侧 talbelView 移动的 indexPath

    NSIndexPath*moveToIndexpath = [NSIndexPathindexPathForRow:topHeaderViewIndexpath.sectioninSection:0];


    // 移动 左侧 tableView 到 指定 indexPath 居中显示

    [self.leftTableView selectRowAtIndexPath:moveToIndexpath animated:YES scrollPosition:UITableViewScrollPositionMiddle];


}

//MARK: - 点击 cell 的代理方法

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


    // 选中 左侧 的 tableView

    if(tableView ==self.leftTableView) {


        NSIndexPath*moveToIndexPath = [NSIndexPathindexPathForRow:0inSection:indexPath.row];


        // 将右侧 tableView 移动到指定位置

        [self.rightTableView selectRowAtIndexPath:moveToIndexPath animated:YES scrollPosition:UITableViewScrollPositionTop];


        // 取消选中效果

        [self.rightTableViewdeselectRowAtIndexPath:moveToIndexPathanimated:YES];

    }

}

#pragma mark - 懒加载 tableView -

// MARK: - 左边的 tableView

- (UITableView*)leftTableView {


    if (!_leftTableView) {


        UITableView*tableView = [[UITableViewalloc]initWithFrame:CGRectMake(0,0,leftTableWidth,ScreenHeight)];


        [self.viewaddSubview:tableView];


        _leftTableView= tableView;


        tableView.dataSource=self;

        tableView.delegate=self;


        [tableViewregisterClass:[UITableViewCell class] forCellReuseIdentifier:leftCellIdentifier];

        tableView.backgroundColor= [UIColorredColor];

        tableView.tableFooterView= [[UIViewalloc]init];


    }

    return _leftTableView;

}

// MARK: - 右边的 tableView

- (UITableView*)rightTableView {


    if (!_rightTableView) {


        UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(leftTableWidth, 0, rightTableWidth, ScreenHeight)];


        [self.viewaddSubview:tableView];


        _rightTableView= tableView;


        tableView.dataSource=self;

        tableView.delegate=self;


        [tableViewregisterClass:[UITableViewCell class] forCellReuseIdentifier:rightCellIdentifier];

        tableView.backgroundColor= [UIColorcyanColor];

        tableView.tableFooterView= [[UIViewalloc]init];


    }

    return _rightTableView;

}

你可能感兴趣的:(左右表格的联动)