我在 iPad 上的横向视图控制器有两个问题。
(1) 我有两个包含表格的弹出窗口。表格应滚动到特定行以反映主视图中的选择。相反,表格确实向下滚动了一些,但实际选择的行仍然不在屏幕上。
(2) 我所有的动作表的宽度都是 320。
在 Interface Builder 中,我的所有视图都是横向创建的。只有主窗口不是,但我看不到改变它的方法。
我的配置:启动后,我的主窗口和主视图控制器视图得到以下坐标:
Window frame {{0, 0}, {768, 1024}} mainView frame {{0, 0}, {748, 1024}}
之后的所有其他视图在被召唤时显示这些坐标(加载时但在呈现之前):
frame of keysig {{0, 0}, {1024, 768}}
frame of instrumentSelect {{20, 0}, {1024, 768}}
frame of settings {{0, 0}, {467, 300}}
在我所有的 viewControllers 中,我都会回复shouldAutorotateToInterfaceOrientation
:
return ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) ||
(interfaceOrientation == UIInterfaceOrientationLandscapeRight));
一切(几乎)都按预期运行。该应用程序启动到两种横向模式之一。视图(和视图控制器)显示它所属的所有内容,并且点击按预期在整个屏幕上工作。但是,我仍然有这两个问题。
问题 1:我有两个弹出窗口,其中包含足够长的表格,可以在屏幕外运行。表格应滚动到选定的行。它们确实滚动,即它们不会从第 1 行开始,但它们滚动不足以实际显示选定的行。
替代文字 http://idisk.mac.com/mahboud//Public/keysig.png
替代文字 http://idisk.mac.com/mahboud//Public/instrumentlist.png
似乎 UITable 内部矩形是用错误的数字创建的,并且保持这种状态,但我已经检查了 UITableView 的 scrollView 内容坐标,它们似乎是合理的。
问题 2:我认为这与问题 1 有关,因为我的操作表的宽度为 320。我只能假设 iPad 只允许 320 或 480 宽度的操作表,因为它以某种方式认为屏幕以纵向模式定向,它使用较窄的宽度。
你有它。我不敢相信我仍然对方向问题感到困惑。我发誓苹果不会让一个横向应用程序变得容易。有任何想法吗?