ios - 为什么我的嵌套 UITableView 不能正常弹跳?

标签 ios cocoa-touch uitableview

我有一个 UITableView,其单元格包含旋转 90°(因此它们左右滚动)的 UITableView,类似于此处解释的内容:

http://marcanton.io/blog/nested-orthogonal-tableviews/

当我将其中一个单元格滚动到末尾(例如,一直滚动到内容的左边缘或右边缘)时,它会按预期弹跳。但是如果它已经在末尾并且我尝试滚动到内容的末尾之外(例如它一直滚动到右侧并且我尝试进一步滚动到右侧),它根本不会弹跳,有时会错误地弹跳将滚动尝试解释为点击。

如果我创建一个包含另一个旋转 90° 的 UIScrollViewUIScrollView,也会发生同样的事情,所以这似乎是嵌套 ScrollView 的问题,而不是特别是 TableView 。

我尝试子类化 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;
}

但这没有任何效果(除了允许同时水平和垂直滚动,我不需要)。

最佳答案

这与内 TableView 旋转 90 度这一事实有关。观察到的弹跳(以及缺乏弹跳)行为与嵌套 ScrollView 完全一致,该 View 沿与其父 View 相同的轴滚动。

在 UI 中,内 TableView 和外 TableView 似乎沿着不同的轴滚动,但在幕后,由于旋转变换,它们都沿着各自的 y 轴滚动。因此系统将它们视为沿着同一轴滚动。

关于ios - 为什么我的嵌套 UITableView 不能正常弹跳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8529051/

相关文章:

ios - UIImage 从 UIImagePickerController 得到零

iphone - 如何在 iPhone 中捕获应用程序不活动时间

ios - 如何子类化 UITableView?

iphone - 使用AVPlayer播放受DRM保护的歌曲

ios - 通过自定义 UITableViewCell 上的 UISwipeGestureRecognizer 更新 CoreData?

java - setOnEditCommit JavaFX 后禁用 TableCell

ios - 有没有办法找出 View Controller 是否从导航堆栈中弹出?

ios - 递归方法 Objective-C

ios - Firebase 观察被调用两次?

cocoa-touch - iOS导航栏更喜欢大标题滚动行为