使用水平滚动UITableView自动旋转接口时出现BUG

时间:2011-09-12 00:01:31

标签: iphone uitableview horizontal-scrolling autorotate

在我的应用程序的一个屏幕中,我实现了一个水平滚动tableview。 选择的方法是对桌面视图应用90度旋转,然后将每个单元旋转-90度。 除自动旋转问题外,一切正常。我已经花了这一天更好的一半,但到目前为止没有运气。

tableview框架根据表的autoresizingMasks更改,并且没有问题。问题在于tableview单元格没有很好地自动化。

我已经设法使用视频控制器的这一小段代码很好地调整了单元格的高度(使用流畅的动画)。



- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    [volumesPicker beginUpdates];  
    [volumesPicker endUpdates]; 

    NSIndexPath*    indexPath   =   [NSIndexPath indexPathForRow:currentFocusedIndex inSection:0];
    [volumesPicker scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:YES];

    [super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];  
}

问题在于tableview单元格宽度。例如:

  1. 我在横向模式下使用设备启动应用程序。 tableview很好地呈现。

  2. 我以纵向模式旋转设备,我的单元格的宽度突然小于表格(请记住,桌面视图旋转,因此单元格的宽度实际上是垂直测量的)。

  3. 然后我以横向模式将设备旋转回来,我的细胞从桌架溢出。

  4. 仅当tableview应用了旋转变换时才会出现此问题。如果我删除它,细胞会完美更新。此外,我已经测试过,单个单元格旋转不会影响这个问题 - 只有整个tableview转换才有问题。

    所以,之前有人遇到过这个问题......或者知道如何控制细胞的宽度。在这一点上,我甚至对平滑的动画都不感兴趣。我只需要一些有用的东西。

    谢谢,

    修改

    今天进一步调查后,我发现在旋转之后,细胞将调整大小,以便它们使用桌子的高度作为细胞的宽度和高度。

    这意味着在旋转之后,我将始终使用等于表格高度的方格单元格(我通过手动设置表格的高度来测试它,然后检查出来。)

    更大的问题是,即使我在旋转后手动调整单元格大小,新创建的单元格仍然会出现问题。不知怎的,这个表乱搞了他用于单元格宽度的值。 :(

0 个答案:

没有答案