问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何实现两列 tableview 的联动效果

发布网友 发布时间:2022-07-16 12:31

我来回答

1个回答

热心网友 时间:2024-06-25 02:25

直接上代码

@implementation ViewController
{
UITableView *_rightTableView;
UITableView *_leftTableView;
NSArray *_leftTableSource;
NSArray *_rightTableSource;

}
初始化数据源
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
_leftTableSource = @[@"11",@"22",@"33",@"44",@"55",@"66"];
_rightTableSource =@[@{@"header":@"11",@"title":@[@"aa",@"bb",@"cc",@"dd",@"ee",@"ff"]},
@{@"header":@"22",@"title":@[@"gg",@"mm",@"nn",@"oo",@"pp",@"qq"]},
@{@"header":@"33",@"title":@[@"rr",@"ss",@"jj",@"xx",@"yy",@"zz"]},
@{@"header":@"44",@"title":@[@"aa",@"bb",@"cc",@"dd",@"ee",@"ff"]},
@{@"header":@"55",@"title":@[@"gg",@"mm",@"nn",@"oo",@"pp",@"qq"]},
@{@"header":@"66",@"title":@[@"rr",@"ss",@"jj",@"xx",@"yy",@"zz"]}];

[self setupSomeParamars];
}
创建两个tableview
- (void)setupSomeParamars
{
_rightTableView = [[UITableView alloc] initWithFrame:CGRectMake(100, 0,self.view.frame.size.width - 100, self.view.frame.size.height)style:UITableViewStyleGrouped];
_rightTableView.dataSource = self;
_rightTableView.delegate = self;
[self.view addSubview:_rightTableView];

_leftTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 100,self.view.frame.size.height) style:UITableViewStyleGrouped];
_leftTableView.dataSource = self;
_leftTableView.delegate = self;
[self.view addSubview:_leftTableView];

}
设置cell的显示
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
static NSString *reuseIdentifer = @"cell";
UITableViewCell *cell = [tableViewdequeueReusableCellWithIdentifier:reuseIdentifer];
if(!cell){
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:reuseIdentifer];
}
if(tableView == _rightTableView){
cell.textLabel.text = [_rightTableSource[indexPath.section]objectForKey:@"title"][indexPath.row];
}else if (tableView == _leftTableView){
cell.textLabel.text = _leftTableSource[indexPath.row];
}
return cell;

}

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (tableView == _rightTableView) {
return 50;
}else{
return 50;
}
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
if (tableView == _rightTableView) {
return _rightTableSource.count;
}else{
return 1;
}
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (tableView == _leftTableView) {
return _leftTableSource.count;
}else{
return [[_rightTableSource[section] objectForKey:@"title"] count];
}
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
if (tableView == _rightTableView) {
return [_rightTableSource[section] objectForKey:@"header"];
}else{
return nil;
}
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
if(tableView == _rightTableView){
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0,self.view.frame.size.width-100, 40)];
label.backgroundColor = [UIColor cyanColor];
label.text = [_rightTableSource[section] objectForKey:@"header"];
label.textColor = [UIColor redColor];
return label;
}else{
return nil;
}
}

联动效果在于这里
- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section
{
if(tableView == _rightTableView){
[_leftTableView selectRowAtIndexPath:[NSIndexPath indexPathForItem:sectioninSection:0] animated:YES scrollPosition:UITableViewScrollPositionNone];
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
大伙说说洗衣机要不要带烘干好 热烘干洗衣机怎么样 ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 怪物猎人XX火焰纹章联动DLC装备怎么获得 ns 怪物猎人xx怎么联动塞尔达去 怪物猎人xx全职猎人联动只限男号吗 怪物猎人XX怎么与全职猎人联动 一组18片的暖气片需要多少钱? 暖气维修一般多少钱 家里暖气不热,也找人修了好几次了,求求大家帮帮我吧,我实在没办法了... 交了暖气费,暖气开的。但是暖气不热,是凉的。找人修暖气要多少钱? 鼻子不通气,有种头昏的感觉 头昏,而且鼻子不通,咋回事 通过怎么添加好友 享有盛名文明中外的意思 名盛整个词语的意思是? 享有盛名的意思是什么 快快快 "享有盛名”和“享有盛誉”的区别是什么? 享有盛名的意思是什么 快 豪爵100时代之星前减震器如何调硬 13代皇冠减震器怎样调软硬 黑曼巴减震怎么调软硬 宝宝两个月脸上皮肤有点黄,怎么回事 缅桂花语是什么 兰花是几月开呀 花语是什么 大圣娶亲所有经典语录 大圣娶亲经典语录 大话西游之大圣娶亲哪句台词最经典? 《大话西游之大圣娶亲》中至尊宝的两段经典台词 HP+Laserjet+P1008+就绪:3个文档正在打印不印不出来- 问一问 这位犹太百亿富豪,放弃美国和加拿大国籍,说:想成为中国人 ,后来... 为何世界富豪榜中犹太人最多? 掌控兰桂坊的犹太富豪,弃美国、加拿大籍,后来怎样? 为什么全球20%的顶级富豪是犹太人 七彩虹镭射R7 350 显卡怎么样 amd hd 7350与七彩虹gt630白金版哪个玩游戏好极品飞车17 lol之类的... 华为手机显示siM卡己移除,移动网络不可用,手机会自动重启,怎么办 贴大块台阶石砖用什么料能粘贴牢固 七叶连·花有毒吗 零失误快手蛋糕怎么做 我的世界神奇宝贝怎么做塑像,我看到一些人可以做出精灵的雕像,还能在... Minecraft在1.8以后的版本中如何生成一个玩家雕塑。 我的世界1.6.2人怎么雕塑