当UITableView不完全适合其超级视图时,剪切的部分不可滚动。您只能滚动表视图及其超级视图的交集。我相信这种类型的事件处理问题发生在UIViews的任何组合上,而不仅仅是表视图。是否有可以打开的属性或某些内容允许剪切区域仍然接受触摸事件?
_______
| |
| ___|__
| |______|
| |______|
| |______|
|___|______|
|______|
以下是如何实现上述布局的相当简单的示例。
UIView* parentView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 150)];
UITableView* childView = [[UITableView alloc] initWithFrame:CGRectMake(50, 50, 100, 150)];
[self.view addSubview:parentView];
[self.parentView addSubview:childView];
答案 0 :(得分:4)
最简单的方法是让父视图覆盖- pointInside:withEvent:
以检查该点是否在其子视图内,如果是,则返回YES。 (基本上,如果触摸位于或 tableview中,则父视图需要返回YES)
类似的东西:
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
CGPoint pointInTableView = [tableView convertPoint:point fromView:self];
return [super pointInside:point withEvent:event] || [tableView pointInside:pointInTableView withEvent:event];
}