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

时间:2013-01-22 09:06:03

标签: iphone ios ipad uitableview

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

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:2)

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

- (无效)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)议案:( UISwipeGestureRecognizer *)发件人 {

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];
}

}