2014-01-08 46 views
2

用户界面基本相同,但其中一个用于较小的iPhone屏幕,另一个用于较大的iPad屏幕(用于创建iPad UI的this post)。iPad上的iOS应用仅适用于部分屏幕

在iPhone上,一切都很好。我的按钮变色(XIB显示为蓝色,在iPad上显示为白色),我的TextField似乎没有正确连接到我的UIViewController(iPad和iPhone XIB共享相同的控制器),但是,真正的问题是,该应用程序只响应触摸左上角的一半(实际上没有测量,但它是关于iPhone的大小)。注意:该应用程序在iPad上显示全屏。

有了一些测试,我已经确认了以下内容:

  • 这只是我的应用程序的问题,因为其他应用程序是全屏,没有任何问题
  • 如果我提出一个小部件(按钮/ textview)到中心的左边缘并重新启动应用程序,该小部件完全工作。如果我将它移到右边,它根本没有响应。

在下图中,绿色框表示应用程序窗口小部件响应触摸的区域。

在我的常规应用程序设置中,我选择了Universal,并且成功为我的iPhone应用程序(LoginPage〜iphone.xib)和iPad(LoginPage〜ipad.xib)的UI创建了一个.XIB文件。

使用XCode 5.0.2。

编辑:我只是意识到,我有这个问题,以及当我用UITableViewController编程创建用户界面。

Image showing widgets only responding to touch within highlighted section

+0

难道是有一个隐藏的视图阻止触摸区域?如果一个视图响应触摸事件,那么它将阻止它下面的任何东西接收触摸。 – Fogmeister

+0

您是否执行过检查设备是iPhone还是iPad,并据此选择相应的.xib? – Jasper

+0

@JasperPol我在栈上读了一些东西,如果你给它命名〜ipad选择了正确的。这似乎就是这种情况,因为我的观点已经有了足够的差异,可以将它们区分开来。这只是屏幕没有响应绿色框区域之外。 – Dulax

回答

1

你的UI内容是没有尺寸iPad上的全屏另一个视图中最有可能遏制。它的尺寸可能适合iPhone屏幕,并且没有进行调整。如果您为包含这些UI元素的视图提供背景颜色,或者可能是父项,您可能会看到这一点。如果您使用的是自动布局,则您需要添加指定该视图和超级视图边缘之间没有间隙的约束。如果不使用自动布局,则需要使用自动调整(struts和弹簧)来指定视图应水平和垂直拉伸,并与所有4个边保持固定的距离。

对于一些像文本字段这样的元素没有出现连接到控制器的问题,也许你没有把它们连接到xib中。右键单击xib中的文本字段等,看看它们是否显示它们已连接。如果没有,连接它们。

+0

在我的XIB的XCode的侧边菜单中,我有一个“View” 。当我展开这个视图时,我将图像,4个文本视图和按钮与视图的子视图保持同一级别。视图本身的大小设置为“iPad全屏幕”,这就是视图覆盖整个屏幕的原因。有什么我在这里做错了吗? – Dulax