UI 基本相同,但一个用于较小的 iPhone 屏幕,另一个用于较大的 iPad 屏幕(用于 this post 创建 iPad UI)。
在 iPhone 上,一切正常。
在 iPad 上,我的按钮变色(XIB 显示为蓝色,在 iPad 上显示为白色),我的 TextFields 似乎没有正确连接到我的 UIViewController(iPad 和 iPhone XIB 共享同一个 Controller )但是真正的问题是该应用程序仅响应对屏幕左上半部分的触摸(尚未实际测量,但它大约是 iPhone 的大小)。注意:该应用在 iPad 上明显全屏显示。
通过一些测试,我确认了以下几点:
- 这只是我的应用程序的一个问题,因为其他应用程序是全屏的并且没有问题
- 如果我将小部件(按钮/ TextView )从中心移到左边缘并重新启动应用程序,小部件将完全正常工作。如果我将它移到右边缘,它根本不会响应触摸。
在下图中,绿色框描绘了应用小部件响应触摸的区域。
在我的常规应用设置中,我选择了通用并且我已经成功地为我的 iPhone 应用 (LoginPage~iphone.xib) 和 iPad (LoginPage~ipad.xib) 的 UI 创建了一个 .XIB 文件。
使用 XCode 5.0.2。
编辑:当我使用 UITableViewController 以编程方式创建 UI 时,我才意识到我也遇到了这个问题。
Best Answer-推荐答案 strong>
您的 UI 内容很可能包含在另一个未在 iPad 上调整为全屏大小的 View 中。它的大小可能适合 iPhone 屏幕,并且没有进行调整。如果您为包含这些 UI 元素的 View 提供背景颜色,或者它可能是父级,您可能会看到这一点。如果您正在使用自动布局,您将需要放置指定该 View 和父 View 边缘之间没有间隙的约束。如果不使用自动布局,您需要使用自动调整大小(支柱和 Spring )来指定 View 应水平和垂直拉伸(stretch),并与所有 4 个边缘保持固定距离。
对于某些元素(例如文本字段)似乎没有连接到 Controller 的问题,也许您没有将它们连接到 xib 中。右键单击 xib 中的文本字段等,看看它们是否显示它们已连接。如果没有,请连接它们。
关于iPad 上的 iOS 应用仅适用于部分屏幕,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/21001420/
|