我有一个UITableView,其单元格包含旋转90°的UITableViews(因此它们左右滚动),类似于此处所解释的:
http://marcanton.io/blog/nested-orthogonal-tableviews/
当我将其中一个单元格滚动到最后(例如,一直到内容的左边缘或右边缘)时,它会按预期弹跳。但是如果它已经在最后并且我尝试滚动超出内容的末尾(例如它一直滚动到右边,我尝试向右滚动),它根本不会反弹,有时会错误地反弹将滚动尝试解释为点按。
如果我创建的UIScrollView
包含另一个旋转了90°的UIScrollView
,则会发生同样的情况,因此它似乎是嵌套滚动视图的问题,而不是具体的表视图。
我尝试了对UITableView
进行子类化并覆盖所有UIGestureRecognizerDelegate
方法,如下所示:
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
return YES;
}
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
return YES;
}
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
return YES;
}
但这没有效果(除了允许同时水平和垂直滚动,我不需要)。
答案 0 :(得分:1)
这与内部表视图旋转90度的事实有关。弹跳(缺少弹跳)的观察行为与嵌套滚动视图完全一致,滚动视图与其超视图沿同一轴滚动。
在UI中,内部和外部表视图似乎沿着不同的轴滚动,但是由于旋转变换,它们都是在幕后,它们都沿着它们各自的y轴滚动。因此系统会将它们视为沿同一轴滚动。
答案 1 :(得分:0)
我发现在UIScrollView中包装旋转的UITableView修复了问题(不确定为什么这对你不起作用)。