水平滚动UITableView的奇怪行为(在Monotouch中)

时间:2011-11-07 01:23:41

标签: ipad uitableview xamarin.ios horizontal-scrolling

我们有一个UITableView,我们已经配置为像Grid一样,允许水平和垂直滚动。我们通过在自定义UITableView的LayoutSubviews方法中动态更改ContentSize来实现这一点,该方法有助于自动旋转,滚动等。

除了几个较大的网格之外,一切都按预期工作。当这些网格水平滚动(向左滑动)时,只要ContentOffset.X大于或等于Bounds.Width,表视图就会消失。它仍然存在并接收输入,但没有画任何东西。在向右滑动时,一旦超过宽度阈值,就会重新绘制所有内容。

在网格大小小于配置的UITableView宽度的一半的情况下,不会发生此问题。我们无法更改网格的大小,因为它们是由期望数据可用的现场客户配置的。

我已经检查和/或删除了尽可能多的自定义绘图代码,但问题仍然存在。有没有人有任何想法?

2 个答案:

答案 0 :(得分:0)

这是因为虽然UITableView继承自UIScrollView,但它只是意味着有一个列,因此它根据其Bounds绘制其单元格。

如果你想用UITableView创建一个类似网格的控件,我建议在父UIScrollView中并排使用多个表视图,并改变那个的ContentSize。

答案 1 :(得分:0)

我遇到了同样的问题,并在12月份在Apple开发者网站上发布了一个错误报告( 10561166 )。

我今天收到苹果公司的答复,其中他们声明了

  

UITableView并非设计用于水平滚动。

(之后我改变了我的设计,不需要水平滚动。)