是否可以通过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外部的单元格空间时,它才会返回正确的值。
答案 0 :(得分:0)
是的,是的,这是可能的。您需要将一个委托分配给单元格中的scrollViews。最好是实现小时tableview数据源和表视图委托协议的同一个类。您必须实现UIScrollViewDelegate
,并且委托必须实现scrollViewDidScroll:
方法。
在该scrollViewDidScroll委托方法中,检查contentOffset属性的x和/或y值。通常人们会选择垂直滚动值,但是如果你在UITableViewCell中实现它们,你可能正在进行水平滚动。
您使用该值,我假设contentOffset.x,以更新表的其他单元格中的其他滚动视图!有意义吗?
我昨天刚刚发布了另一个UIScrollView问题的答案。请阅读我在那里写的内容,它可能对你有所帮助。