Ios UITableView:未收到单元格的第一次点击

Ios UITableView:未收到单元格的第一次点击,ios,uitableview,ios8,Ios,Uitableview,Ios8,我在UIViewController上有UITableView,内容比表的区域大一点。当我尝试将“反弹”属性设置为“否”时,单元格的第一次点击将在将表格滚动到边界后停止接收 我创建了一个测试项目来接收这个问题的所有细微差别: 1) 第一个选择在滚动之前工作良好 2) 滚动后的第二次选择也很好 3) 没有问题,如果滚动到边界本身(相反,我将用手指滚动并在到达边界后结束触摸) 4) 将“反弹”属性设置为“是”可解决问题(bcs滚动只能到达边界本身) 5) 单元格的亮点始终有效 6) 未接收到下一个委

我在UIViewController上有UITableView,内容比表的区域大一点。当我尝试将“反弹”属性设置为“否”时,单元格的第一次点击将在将表格滚动到边界后停止接收

我创建了一个测试项目来接收这个问题的所有细微差别:

1) 第一个选择在滚动之前工作良好

2) 滚动后的第二次选择也很好

3) 没有问题,如果滚动到边界本身(相反,我将用手指滚动并在到达边界后结束触摸)

4) 将“反弹”属性设置为“是”可解决问题(bcs滚动只能到达边界本身)

5) 单元格的亮点始终有效

6) 未接收到下一个委托方法(当然,仅当启动错误时)

UPD:这是带有bug的gif,当这个bug触发时,滚动条似乎也没有隐藏


看起来像苹果的UITableView漏洞,需要报告。这里有一些掩盖问题的方法(不好,但有效):

- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
- (NSIndexPath *)tableView:(UITableView *)tableView willDeselectRowAtIndexPath:(NSIndexPath *)indexPath
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {
    if (!scrollView.bounces) {
        targetContentOffset->y = -1;
    }
}