当滚动iOS时,从tableView滑动所有scrollViews

时间:2013-12-11 09:21:41

标签: ios iphone ipad uitableview uiscrollview

是否可以通过scrollView识别手势,以便拖动一个scrollView来模拟另一个scrollView上的相同拖动?例如,我tableView的自定义cell中包含scrollView,我想模拟拖动列表中的每个项目。

修改 我成功识别了scrollView的移动,但现在我无法从表中设置其他scrollViews来进行相同数量的滚动。

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
    int position_x = scrollView.contentOffset.x;
    int i=0;
    int indexPath = [self.tableView indexPathForSelectedRow].row;

    static NSString *hlCellID = @"EPGCell";
    UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:hlCellID];
    UIScrollView *scrollView = (UIScrollView *)[cell viewWithTag:16];

    for(i=0; i<EPGList.count;i++){
        if(i!=indexPath){
        scrollView.contentOffset = CGPointMake(position_x, scrollView.frame.size.height);
        }
    }
}

问题是当我点击scrollView时indexPath没有返回正确的值。仅当我单击scrollview外部的单元格空间时,它才会返回正确的值。

1 个答案:

答案 0 :(得分:0)

是的,是的,这是可能的。您需要将一个委托分配给单元格中的scrollViews。最好是实现小时tableview数据源和表视图委托协议的同一个类。您必须实现UIScrollViewDelegate,并且委托必须实现scrollViewDidScroll:方法。

在该scrollViewDidScroll委托方法中,检查contentOffset属性的x和/或y值。通常人们会选择垂直滚动值,但是如果你在UITableViewCell中实现它们,你可能正在进行水平滚动。

您使用该值,我假设contentOffset.x,以更新表的其他单元格中的其他滚动视图!有意义吗?

我昨天刚刚发布了另一个UIScrollView问题的答案。请阅读我在那里写的内容,它可能对你有所帮助。

Animation in UIScrollView iOS app