1.点击左侧cell,让右边tableview滚动到相应位置
2.滑动右侧tableview,让左侧tableview选中相应cell
写过好几次了,稍微理解一下,其实简单的
效果
创建两个tableview
@property (nonatomic , weak) UITableView *leftTableView;
@property (nonatomic , weak) UITableView *rightTableView;
loadTableView
UITableView *ltableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, HHBWIDTH * 0.3, HHBHEIGHT-64-40)];
_leftTableView = ltableView;
_leftTableView.delegate = self;
_leftTableView.dataSource = self;
_leftTableView.backgroundColor = [UIColor colorWithRed:0.97 green:0.97 blue:0.97 alpha:1.00];
_leftTableView.sectionHeaderHeight = 38;
_leftTableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
_leftTableView.separatorStyle = UITableViewScrollPositionNone;
[self.view addSubview:_leftTableView];
UITableView *rtableView = [[UITableView alloc] initWithFrame:CGRectMake(HHBWIDTH * 0.3, 0, HHBWIDTH * 0.7, HHBHEIGHT-64-40)];
_rightTableView = rtableView;
_rightTableView.delegate = self;
_rightTableView.dataSource = self;
_rightTableView.backgroundColor = SELFBGColor;
_rightTableView.sectionHeaderHeight = 38;
_rightTableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
[self.view addSubview:_rightTableView];
常规代码片
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
if (tableView == _rightTableView) {
return _rightdataSoure.count;
}else{
return 1;
}
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
if (tableView == _leftTableView) {
return _leftdataSoure.count;
}else{
return [[_rightdataSoure[section] objectForKey:@"title"] count];
}
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
if (tableView == _leftTableView) {
return 43;
}
return 30+48*[HuPageConfig plus_MagnifyingPower];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (tableView == _leftTableView) {
static NSString *cellID = @"cellID";
inHospitalLeftTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
if (nil == cell) {
cell = [[inHospitalLeftTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellID];
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.title.text = @"心血管内科";
return cell;
}else{
static NSString *cellID = @"cellID";
inHospitalRightTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
if (nil == cell) {
cell = [[inHospitalRightTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellID];
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
}
}
点击左侧Cell效果
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (tableView == _leftTableView) {
NSIndexPath *moveIndexPath = [NSIndexPath indexPathForRow:0 inSection:indexPath.row];
//animated为YES会导致leftTableView选择乱跳
[_rightTableView selectRowAtIndexPath:moveIndexPath animated:NO scrollPosition:UITableViewScrollPositionTop];
[_rightTableView deselectRowAtIndexPath:moveIndexPath animated:YES];
}else {
}
}
滑动右侧tableview 效果
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
if (scrollView == self.leftTableView) {
return;
}
NSIndexPath *topIndexPath = [[_rightTableView indexPathsForVisibleRows]firstObject];
NSIndexPath *moveIndexPath = [NSIndexPath indexPathForRow:topIndexPath.section inSection:0];
[_leftTableView selectRowAtIndexPath:moveIndexPath animated:YES scrollPosition:UITableViewScrollPositionMiddle];
}
小白总结,欢迎打脸指正