#define KSCREEN_WIDTH [UIScreen mainScreen].bounds.size.width
#define KSCREEN_HEIGHT [UIScreen mainScreen].bounds.size.height
@interface ViewController ()
{
NSArray*arr;
}
// 定义左侧的表格
@property (nonatomic,strong) UITableView *leftTableView;
// 定义左侧的表格
@property (nonatomic,strong) UITableView *rightTableView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
arr = @[@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10",@"11",@"12",@"13",@"14",@"15",@"16",@"17",@"18"];
[self.view addSubview:self.leftTableView];
[self.view addSubview:self.rightTableView];
// [UIScreen mainScreen].bounds.size.width
// Do any additional setup after loading the view, typically from a nib.
}
-(UITableView*)leftTableView
{
if (!_leftTableView)
{
_leftTableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0,KSCREEN_WIDTH *0.3, KSCREEN_HEIGHT) style:UITableViewStylePlain];
_leftTableView.delegate = self;
_leftTableView.dataSource = self;
}
return _leftTableView;
}
-(UITableView*)rightTableView
{
if (!_rightTableView)
{
_rightTableView = [[UITableView alloc]initWithFrame:CGRectMake(KSCREEN_WIDTH*0.3, 0, KSCREEN_WIDTH*0.7, KSCREEN_HEIGHT) style:UITableViewStyleGrouped];
_rightTableView.delegate = self;
_rightTableView.dataSource = self;
}
return _rightTableView;
}
-(NSInteger)numberOfSectionsInTableView:(UITableView*)tableView
{
if(tableView ==_rightTableView)
{
returnarr.count;
}
else
{
return1;
}
}
-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section
{
if(tableView ==_leftTableView)
{
returnarr.count;
}
else
{
return5;
}
}
-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
staticNSString*identifier =@"cell";
UITableViewCell*cell = [tableViewdequeueReusableCellWithIdentifier:identifier];
if(!cell)
{
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
}
if(tableView ==_leftTableView)
{
cell.textLabel.text=arr[indexPath.row];
}
else
{
cell.textLabel.text= [NSStringstringWithFormat:@"第%ld组 第%ld行",indexPath.section+1,indexPath.row+1];
}
returncell;
}
-(NSString*)tableView:(UITableView*)tableView titleForHeaderInSection:(NSInteger)section
{
if(tableView ==self.rightTableView)
{
returnarr[section];
}
else
{
returnnil;
}
}
//-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
//{
// return 10;
//}
//
// 点击单元格的方法
-(void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath
{
if(tableView ==self.leftTableView)
{
// 获取点击单元格的下标 (下标索引类)
NSIndexPath*moveToPath = [NSIndexPathindexPathForRow:0inSection:indexPath.row];
[self.rightTableView selectRowAtIndexPath:moveToPath animated:YES scrollPosition:UITableViewScrollPositionTop];
}
}
// 只要滚动就调用
-(void)scrollViewDidScroll:(UIScrollView*)scrollView
{
if(scrollView ==self.leftTableView)
{
return;
}
else
{
// 取出显示在视图最靠上的cell的indexPath
NSIndexPath *topHeaderIndex = [[self.rightTableView indexPathsForVisibleRows]firstObject];
// 获取左侧表格移动的indexPath
NSIndexPath*moveIndex = [NSIndexPathindexPathForRow:topHeaderIndex.sectioninSection:0];
[self.leftTableView selectRowAtIndexPath:moveIndex animated:YES scrollPosition:UITableViewScrollPositionTop];
}
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
双表连动
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...