2

当用户在我的表中选择一行时,我需要使用 CoreData 加载一堆数据。这需要几秒钟(至少在模拟器上运行时 - 尚未在设备上进行测试,但我想它仍然会很长)。我想在用户选择一行时显示一个加载弹出屏幕(我正在为 iPad 开发),然后在加载数据后让它消失。

在使用 UIButtons 时,我总是通过触发 TouchDown 和 TouchUp 方法来做到这一点。我将代码放在 TouchDown 上显示弹出框,然后在 TouchUp 中完成我所有的实际工作(在本例中从 CoreData 加载)。然后在 TouchUp 结束时,我关闭弹出框。

有没有办法像按钮一样在表格视图中拆分触摸?

4

1 回答 1

1

因此,当我输入问题时,我在Apple Docs中遇到了一些问题willSelectRowAtIndexPath,看起来就是为了解决这个问题。我没有在 SO 上看到任何其他主题,所以我想我会在这里使用这个“回答自己的问题 - 问答”功能,所以将来寻找这个的人可能会发现它更容易一些。


巨大的仅供参考:

我应该注意willSelectRowAtIndexPath实际上应该返回一个NSIndexPath,不像didSelectRowAtIndexPath(返回void)。然而,我原本有

-(void)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    //stuff
}

注意void返回类型。Xcode(4.5 版)允许这样做而没有任何错误或警告(甚至在自动完成列表中为我提供了它)。当我以这种方式运行代码时,我总是遇到一个不可见的断点libobjc.A.dylib'objc_autorelease:(可能是因为我启用了“所有异常”断点?)。我无法越过这个断点,我从未在调试器输出控制台中获得任何调试信息,并且应用程序从未终止。我碰巧再次查看 Apple Doc 并注意到它应该返回一个 NSIndexPath (具体来说,代码应该解释为被选择的索引路径),但如果我没有碰巧在那里看到它,我永远不会知道问题是什么。


于 2013-04-05T18:27:27.887 回答