我有两个问题的视窗控制器在横向方向上的iPad。
(1)我有两个能放桌子的弹出窗口。表应滚动到特定行以反映主视图中的选择。相反,表确实向下滚动了一些,但实际选定的行仍不显示在屏幕上。
(2)我所有的行动表都有320宽。
在界面生成器中,我的所有视图都是以横向方式创建的。只有主窗口没有,但我看不到改变的方法。
我的配置:
启动时,我得到主窗口和主视图控制器视图的以下坐标:
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));
一切(几乎)按预期运转。应用程序将进入两种横向模式之一。视图(和viewcontrollers)显示它所属的所有内容,轻触可按预期在整个屏幕上工作。但是,我仍然有两个问题。
问题1:
我有两个弹出窗口,里面的桌子足够长,可以从屏幕上消失。表格应滚动到选定的行。它们确实是滚动的,也就是说,它们不是从第1行开始的,但是它们滚动的程度不足以实际显示所选行。
alt text http://idisk.mac.com/mahboud//Public/keysig.png
alt text http://idisk.mac.com/mahboud//Public/instrumentlist.png
看起来一个uitableview的内部rect是用错误的数字创建的,并且保持这种状态,但是我检查了uitableview的scrollview内容坐标,它们看起来是合理的。
问题2:
我认为这与问题1有关,因为我的行动表的宽度是320。我只能假设ipad只允许320或480个宽度的actionsheets,而且由于它认为屏幕是以纵向模式定向的,所以它使用了更窄的宽度。
给你。我真不敢相信我还在纠结于定向问题。我发誓苹果不容易有一个景观应用程序。有什么想法吗?