UIScrollView 选定的单元格在旋转到横向时超出当前视图

Posted

技术标签:

【中文标题】UIScrollView 选定的单元格在旋转到横向时超出当前视图【英文标题】:UIScrollView selected cell goes out of present view on rotation to landscape 【发布时间】:2013-08-22 15:55:16 【问题描述】:

我在 UIScrollView 中有一个 UITableView。表格单元格是垂直的,即一个在另一个之下。如果我选择纵向的底部单元格,它会突出显示并显示一个弹出框。但是,在旋转到横向时,选定的单元格会从可见视图中消失,但它的弹出框仍然存在。我了解旋转时的 UIScrollView 使用 UITableView 中最顶部的单元格作为新(横向)方向的最顶部。我如何强制它仍然将选定的单元格保持在旋转视图中,即旋转时,可能以选定的单元格作为参考点旋转。

【问题讨论】:

【参考方案1】:

我相信您需要在视图控制器的界面旋转事件中调用此方法。

-(void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath
             atScrollPosition:(UITableViewScrollPosition)scrollPosition
                     animated:(BOOL)animated;

您可以在视图控制器中执行以下操作:

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromOrientation

    [tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionBottom animated:YES];

您可以从以下事件中获取所选行的indexPath:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

【讨论】:

谢谢,我不确定 war scrollToRowAtIndex 是否有效,并且从未尝试过。我有 indexPath 来检查所选单元格是否可见。 酷,很高兴我能帮上忙!

以上是关于UIScrollView 选定的单元格在旋转到横向时超出当前视图的主要内容,如果未能解决你的问题,请参考以下文章

使用 Storyboard 和 Autolayout 旋转到横向后,UIScrollView 中的 UIButtons 不可触摸?

如果选定的单元格在范围内,Excel 删除行

UITableView 选定的单元格在滚动时不会保持选中状态

iPad:在屏幕上保留选定的表格视图单元格

如何根据选定的单元格在表格视图中设置启用的检查图像

在 UIScrollView 问题中旋转 UIImageView