Iphone 在UIScrollView中时出现UITableView滚动问题
我有一个UIScrollView(带分页),我在其中添加了三个UIView。每个UIView内部都有一个UITableView。因此,用户应该能够水平滚动到他想要的页面,然后在相应的表中垂直滚动 但是,有些表不接收滚动手势。通常第一个表现不错,但另一个表现不好。我不能选择单元格,也不能上下滚动表格 我使用了UIScrollView的默认设置,但viewDidLoad中定义的设置除外:Iphone 在UIScrollView中时出现UITableView滚动问题,iphone,ios,uitableview,uiscrollview,scroll,Iphone,Ios,Uitableview,Uiscrollview,Scroll,我有一个UIScrollView(带分页),我在其中添加了三个UIView。每个UIView内部都有一个UITableView。因此,用户应该能够水平滚动到他想要的页面,然后在相应的表中垂直滚动 但是,有些表不接收滚动手势。通常第一个表现不错,但另一个表现不好。我不能选择单元格,也不能上下滚动表格 我使用了UIScrollView的默认设置,但viewDidLoad中定义的设置除外: - (void)viewDidLoad { [super viewDidLoad]; //Lo
- (void)viewDidLoad
{
[super viewDidLoad];
//Load the view controllers
[self loadViewControllers];
//Configure the scroll view
self.scrollView.pagingEnabled = YES;
self.scrollView.contentSize = CGSizeMake(CGRectGetWidth(self.scrollView.frame) * viewControllers.count, CGRectGetHeight(self.scrollView.frame));
self.scrollView.showsHorizontalScrollIndicator = NO;
self.scrollView.showsVerticalScrollIndicator = NO;
self.scrollView.scrollsToTop = NO;
self.scrollView.delegate = self;
//Configure the page control
self.pageControl.numberOfPages = viewControllers.count;
self.pageControl.currentPage = 0;
}
我不明白为什么我不能滚动一些表格。。。任何帮助都将不胜感激
提前谢谢 尝试设置
self.scrollView.delaysContentTouches = YES;
self.scrollView.canCancelContentTouches = NO;
也许UIScrollView不会将触摸信息传递给子视图。我要检查的事项:
tableView:didselectrowatinexpath:
中设置一个断点,看看是否调用了该方法我想这些答案还不确定,但希望它们能帮助发现问题 我尝试使用基本的界面生成器来复制您的需求的简化版本,在我看来,它使用基本编码和默认设置来工作。请检查我的quick n dirty Github回购协议,并请回复该协议是否适用于您的情况或缺少的内容 默认情况下,界面生成器创建UIScrollView和UITableView,以启用:
- 延迟内容涉及
- 可取消的内容涉及
- 这对我很有效
我使用
addSubview:
需要使用UIgestureRecognitizerDelegate
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if ([touch.view isDescendantOfView:self.signUpJammerList]) {
return NO;
}
return YES;
}
我通过interface builder尝试了该解决方案,但没有成功。我应该在代码中这样做还是相同?嗯,我没有其他的观点。目前的层次结构是这样的:UIView-UIScrollView--UIView--UITableView。但是,你说得很对。。。tableView:didSelectRowAtIndexPath在“尝试”滚动期间未调用。但我并没有禁用它(至少是故意的)。知道为什么它会被禁用吗?有没有为您的UITableView调用任何委托/数据源方法?是的,每个UITableView都有一个UIViewController,它既是表的委托又是表的数据源。我刚才偶然发现了这个答案,但实际上我不记得检查UITableView是否超出了UIScrollView的限制。我会检查并回复。谢谢欢迎很乐意帮忙,谢谢!我会试试这个,然后再打给你!:-)在我的示例中,我没有为所有表使用单独的视图控制器,因为一个视图控制器作为所有表的数据源就足够了,因为您可以在cellForRowAtIndexPath和numberOfRowsInSection中使用“tableView”参数来区分不同的表,您和@hw731似乎都是正确的,因为在您的示例和hw371发布的链接中,差异在于UITableView大小。我的表太大了几个像素,而在您的示例中,它们正好适合,这似乎是我的代码的问题。:-)非常感谢你!不客气总是希望具体的工作代码能帮助更多的人。如果你能投票支持这个答案,这可能会表明其他人也要检查这个例子。谢谢!当然可以太糟糕了,我不能将两者都标记为选定答案。;)