Iphone iPad:Popover视图中的表格不会滚动显示所选行

Iphone iPad:Popover视图中的表格不会滚动显示所选行,iphone,ipad,uitableview,uipopovercontroller,Iphone,Ipad,Uitableview,Uipopovercontroller,我在iPad上的横向视图控制器有两个问题 (1) 我有两个用来放桌子的弹出窗口。表格应滚动到特定行,以反映主视图中的选择。相反,表格确实向下滚动了一些,但实际选定的行仍保留在屏幕外 (2) 我所有的动作片都有320的宽度 在Interface Builder中,所有“我的视图”都是以横向方式创建的。只有主窗口不是,但我看不到改变的方法 我的配置:启动后,我将获得主窗口和主viewcontroller视图的以下坐标: Window frame {{0, 0}, {768, 1024}} mainV

我在iPad上的横向视图控制器有两个问题

(1) 我有两个用来放桌子的弹出窗口。表格应滚动到特定行,以反映主视图中的选择。相反,表格确实向下滚动了一些,但实际选定的行仍保留在屏幕外

(2) 我所有的动作片都有320的宽度

在Interface Builder中,所有“我的视图”都是以横向方式创建的。只有主窗口不是,但我看不到改变的方法

我的配置:启动后,我将获得主窗口和主viewcontroller视图的以下坐标:

Window frame {{0, 0}, {768, 1024}} mainView frame {{0, 0}, {748, 1024}}
之后的所有其他视图在调用时(加载时但在显示之前)显示这些坐标:

在我的所有ViewController中,我对
shouldAutorotateToInterfaceOrientation
的响应为:

            return ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || 
                        (interfaceOrientation == UIInterfaceOrientationLandscapeRight));
一切(几乎)都按预期运行。该应用程序将以两种横向模式之一启动。视图(和视图控制器)显示它所属的所有内容,并按预期在整个屏幕上运行。然而,我仍然有两个问题

问题1:我有两个弹出窗口,其中包含的表格足够长,可以从屏幕上消失。表格应滚动到选定的行。它们确实会滚动,也就是说,它们不会从第1行开始,但滚动的幅度不足以实际显示选定的行

看起来一个UITable内部rect似乎是用错误的数字创建的,并保持这种状态,但我已经检查了UITableView的scrollView内容坐标,它们似乎是合理的

问题2:我认为这与问题1有关,因为我的行动表的宽度为320。我只能假设iPad只允许320或480种宽度的操作单,而且由于它不知何故认为屏幕是以纵向模式定向的,所以它使用的是较窄的宽度


给你。我不敢相信我还在为适应问题而烦恼。我发誓苹果并没有让拥有一个景观应用变得容易。有什么想法吗?

我有点想通了。如果我接受

[self.tableView scrollToNearestSelectedRowAtScrollPosition:UITableViewScrollPositionNone animated:YES];
在-viewDidDisplay或-viewWillDisplay中,将其放在my-PresentPoOverfrom…(我的演示文稿)之后,则它可以工作:

[popController presentPopoverFromBarButtonItem:keySigBBItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

[keySignatureTableVC.tableView scrollToNearestSelectedRowAtScrollPosition:UITableViewScrollPositionMiddle animated:NO];

必须发生的是-viewDidAppear和-viewWillAppear必须在presentPopover之前被调用。。。调整视图的大小或方向。我在这两种方法中所做的并不是在正确的框架或边界上工作。之后滚动似乎很有效。

我有点明白了。如果我接受

[self.tableView scrollToNearestSelectedRowAtScrollPosition:UITableViewScrollPositionNone animated:YES];
在-viewDidDisplay或-viewWillDisplay中,将其放在my-PresentPoOverfrom…(我的演示文稿)之后,则它可以工作:

[popController presentPopoverFromBarButtonItem:keySigBBItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

[keySignatureTableVC.tableView scrollToNearestSelectedRowAtScrollPosition:UITableViewScrollPositionMiddle animated:NO];

必须发生的是-viewDidAppear和-viewWillAppear必须在presentPopover之前被调用。。。调整视图的大小或方向。我在这两种方法中所做的并不是在正确的框架或边界上工作。之后滚动似乎有效。

这是一个好问题。你显然花了一些时间。然而,你把实际的问题埋藏在身体深处。人们必须读几百个字才能弄清楚你的问题是什么。在将来,把问题放在首位,然后是任何细节。如果他们不必费劲去弄清楚你在问什么问题,更多的人会阅读并回答你的问题。我已将问题编辑为更易于阅读的格式。感谢您花时间澄清。这是一个好问题。你显然花了一些时间。然而,你把实际的问题埋藏在身体深处。人们必须读几百个字才能弄清楚你的问题是什么。在将来,把问题放在首位,然后是任何细节。如果他们不必费劲去弄清楚你在问什么问题,更多的人会阅读并回答你的问题。我已将问题编辑为更易于阅读的格式。感谢您花时间澄清。