【问题标题】:slide all scrollViews from tableView when one is scrolling iOS滚动iOS时从tableView中滑动所有滚动视图
【发布时间】:2013-12-29 04:34:53
【问题描述】:

是否可以识别来自scrollView 的手势,所以当一个scrollView 被拖动以模拟对另一个scrollView 的相同拖动时?例如,我有 tableView 和自定义 cell,其中有 scrollView,我想模拟拖动列表中的每个项目。

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

-(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 没有返回正确的值。只有当我点击滚动视图之外的单元格空间时,它才会返回正确的值。

【问题讨论】:

    标签: ios iphone ipad uitableview uiscrollview


    【解决方案1】:

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

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

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

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

    Animation in UIScrollView iOS app

    【讨论】:

    • 我需要 x 位置。如何设置列表中每个滚动视图的位置?
    • 您需要遍历每个可见的表格单元格并在每个单元格中找到滚动视图,并将当前滚动视图中的 x 位置分配给其余部分,但请确保在循环时跳过当前滚动视图表格单元格列表。
    • 我知道我需要在委托方法中循环,但我不知道如何从 tableView 获取每个 scrollView 的 id?我尝试了一些代码,但它不起作用,请参阅我的编辑。
    猜你喜欢
    • 2014-02-16
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-04
    相关资源
    最近更新 更多