如何将触摸事件从一个视图传递到另一个视图

时间:2014-02-07 22:04:31

标签: objective-c uiscrollview uiresponder

我有UIScrollViewUIView子视图,其中有UITableView子视图。我想要的是当用户滚动UITableView时容器滚动视图滚动。有没有办法将触摸事件从子UIScrollView传递到容器UIScrollView?谢谢你的帮助。这是滚动视图的代码。父滚动视图在代码中创建,子视图在IB中创建。

CGFloat offset = ([[UIDevice currentDevice].systemVersion floatValue] >= 7.0) ? 64.0 : 44.0;
self.parentScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0.0, offset, 320.0, self.view.frame.size.height - offset)];
self.parentScrollView.delegate = self;
self.parentScrollView.bounces = NO;
self.parentScrollView.contentInset = UIEdgeInsetsMake(self.header.frame.size.height - offset, 0, 0, 0);
self.parentScrollView.delaysContentTouches = NO;
[self.view addSubview:self.parentScrollView];

[self.contentView.tableView registerNib:[UINib nibWithNibName:@"PodcastCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"PodcastCell"];
[self.contentView.tableView registerNib:[UINib nibWithNibName:@"DescriptionCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"DescriptionCell"];
self.contentView.delegate = self;
self.contentView.tableView.delegate = self;
self.contentView.tableView.dataSource = self;
[self.parentScrollView addSubview:self.contentView];
self.parentScrollView.contentSize = CGSizeMake(320.0, self.contentView.frame.size.height);

对不起,我没有解释得很清楚。我需要滚动父UIScrollView,直到子UITableView到达父级的顶部,此时父UIScrollView应停止滚动,子UItableView应该开始滚动。这有意义吗?

1 个答案:

答案 0 :(得分:0)

scrollViewDidScroll:中实施UITableView,计算contentOffset,然后从容器视图中调用setContentOffset:animated: