#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.
}
网友评论