UITableView的一部分不响应任何触摸/事件

4
这个问题有点难以用代码来表达,所以我会尽力描述它,也许有人能猜出问题所在。
我有一个UITableView被旋转了90度,实际上变成了水平的TableView。每个单元格都包含图表的一部分,如下图所示:
这对我的需求非常有效,使我们能够利用UITableView的一些功能,特别是单元格重用。
在iPhone5以下的设备上,一切都很顺利,因为UITableView是正方形(320x320),所以旋转和修改框架非常容易。
然而,我刚开始添加iPhone 5支持,这意味着将宽度(最终高度)扩展到大约320+88。这可以在上面的屏幕截图中看到。我发现在旋转表后正确获取边界/中心相当棘手。也许这是由此产生的问题。
问题(终于!)是现在(在iPhone5上),底部的30多个点无法选择(围绕月份选择部分)。UIButton的按下事件不会在月份上注册,didSelectCell不会在单元格上注册,并且无法滑动。
UITableViewCell的框架大小是正确的。我已经设置了UITableViewCell的背景颜色,并确认这30多个点在框架内。
这部分表格前面没有子视图或其他任何东西。
在iPhone5以下的设备上一切都完美无缺。
有什么想法吗?我已经花了太多时间来尝试解决这个问题,现在几乎放弃了用第三方“HorizontalTable”或自编写ScrollView替换我的实现。

可能是 iPhone 5,iOS 6模拟器上的无响应屏幕 的重复问题。 - tc.
不是的。虽然建议不错,但是父视图正在接收响应。 - JeremyDay
啊,我认为这可能是一个不同的问题:你是否在表格视图上设置了变换?当你这样做时,我经历过一个关于单元格大小调整的 bug - UITableView 似乎使用它的框架宽度而非边界宽度来决定要使单元格多宽(高)。将表格视图放入容器中,并在容器上设置变换。 - tc.
我不认为是这样的。我在willDisplayCell调用中设置了contentView的背景颜色,它的大小是正确的。我也尝试了你的建议并转换了一个容器视图。同样的问题。 - JeremyDay
1个回答

6

经过无数浪费的时间,问题确实是在UITableView之外。我没有提到的是,这个UITableView实际上嵌套在另一个UITableView中。而那个表的heightForRowAtindex没有足够的高度,因此所有的触摸事件都被丢弃了(即使表没有超出范围)。

非常感谢大家,很抱歉我一开始没有提供足够的信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接