雙表連動

#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.

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。