首页 文章

iPhone通过向外滑动表视图来滚动UITableview

提问于
浏览
4

在我的情况下,我有UIView和UITableView控制器 . 我想要的是通过滑动UIView滚动表格视图 . 我已经为UIView添加了向上滑动和向下滑动手势 . 当我在此视图上滑动时,沿着滑动方向滚动表格视图 . 它可以吗?

2 回答

  • 2

    //让myView成为你想要滚动你的tableview的视图(myTableview)

    //现在在viewdidload方法中添加以下行

    UISwipeGestureRecognizer * swipegesture = [[UISwipeGestureRecognizer alloc]init];
    swipegesture =[myTableview.gestureRecognizers objectAtIndex:1];
    [myView addGestureRecognizer:swipegesture];
    
  • 2

    从viewDidLoad中调用此方法 . 此方法将禁用滚动tableview以防止手动滚动 . 假设您有100行高度30,myview是必须执行滚动的视图 . 在myview上添加了滑动手势,设置滑动的方向很重要

    • (void)initialSetup {
    [self.tableView setScrollEnabled:NO];  
    int numberOfRows=100;
    int rowHeight=30;
    myview=[[UIView alloc]initWithFrame:CGRectMake(280, 0, 30, numberOfRows*rowHeight)];
    [myview setBackgroundColor:[UIColor yellowColor]];
    [self.view addSubview:myview];
    UISwipeGestureRecognizer *swipeDown=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(motion:)];
    [swipeDown setDirection:UISwipeGestureRecognizerDirectionDown];
    [myview addGestureRecognizer:swipeDown];
    UISwipeGestureRecognizer *swipeUp=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(motion:)];
    [swipeUp setDirection:UISwipeGestureRecognizerDirectionUp];
    [myview addGestureRecognizer:swipeUp];}
    

    当swipeUp或swipeDown发生滑动手势时,将调用以下方法 . 当方法接收到swipeUp手势时,它将tableview中最后一个当前可见的行滚动到顶部当方法接收到swipeDown时,它将第一个当前可见的行滚动到底部

    • (void)motion:(UISwipeGestureRecognizer *)sender {
    if (sender.direction==UISwipeGestureRecognizerDirectionUp) {
        [self.tableView scrollToRowAtIndexPath:[self.tableView.indexPathsForVisibleRows objectAtIndex:[self.tableView.indexPathsForVisibleRows count]-1]  atScrollPosition:UITableViewScrollPositionTop animated:YES];
    }else if(sender.direction==UISwipeGestureRecognizerDirectionDown)
    {
       [self.tableView scrollToRowAtIndexPath:[self.tableView.indexPathsForVisibleRows objectAtIndex:0 ] atScrollPosition:UITableViewScrollPositionBottom animated:YES];
    }
    

    }

相关问题