美文网首页
双表连动

双表连动

作者: rainbow_H | 来源:发表于2018-07-23 09:07 被阅读0次

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

    }

    相关文章

      网友评论

          本文标题:双表连动

          本文链接:https://www.haomeiwen.com/subject/nfjdmftx.html