0

我在调整我的应用程序以适应新的 iphone5 布局时遇到问题,我通过了以下方法:

  1. 添加了视网膜 4" 初始图像
  2. 使用“尺寸检查器”修改了我的故事板中的界面以更改小部件的锚定
  3. 使用 iOS6“retina 4”模拟器测试了该应用程序。

该应用程序按预期工作,除非当用户弹出键盘编辑文本时,我对这种特殊情况使用“拉伸滚动视图”方法,这似乎与我的小部件的“自动调整大小”属性不兼容,这是一个示例,来自 iOS6 模拟器,不带和带键盘:

与未锚定以填充 iphone5 屏幕的中间项的接口

这就是发生的事情:

显示键盘后发生的混乱

我很确定这是一个连贯的行为,因为我的主视图被拉伸了,所以它里面的其他项目在它们锚定后被拉伸,事实是我希望我以前的固定位置具有相同的行为(所有小部件都锚定到左上角)与 iphone5 gui 扩展,这可能吗?

您如何解决以 iphone 5 兼容方式显示键盘和滚动隐藏内容的问题?

4

1 回答 1

0

我一直有类似的问题。从我目前发现的情况来看,我们可能需要删除可滚动视图中视图上的所有约束,因为它的内容似乎随着滚动视图的框架一起调整大小。我知道在 viewWillAppear 中手动设置内部视图的框架会起作用,但是你会被困在 iPhone4 和 iPhone5 大小相同的视图中(尽管它会滚动)。或者您可以在情节提要中“固定高度和固定宽度”的内部视图。

两种可能可行的方法。抱歉,我无法确认这些,因为我正在放弃并围绕这个问题重新设计。
1. 以编程方式向您的内部视图的子视图添加约束。编程约束将允许您按比例“弹出”元素之间的距离。以编程方式添加约束时,您可以访问一个称为“乘数”的因子(不要与优先级混淆),我在 stackoverflow 上看到其他人发布过这个因子。
2. 您可以将 Interface Builder 中的 internalView 设计为带有 .xib 文件的单独 viewController,然后使用 storyboard 将其作为嵌入式 viewController 加载到“containerView”对象,您将把它作为新的“内部视图” "的滚动视图。也许然后 .xib 会首先调整到正确的 iOS 设备,然后你可以使用它的框架来调整 containerView 的大小。

我的建议是在实施之前创建一个小型测试用例,否则你最终会像我一样,在错误的道路上花费数小时并面临死胡同。

更新 12/4/12 通过不将 ScrollView 设置为 ViewController 的主视图,让您的生活更轻松。--相反,使 ViewController.view 成为一个虚拟/空白视图,并在该视图中嵌入一个滚动视图。然后,在 ScrollView 中嵌入另一个视图(我的 CustomView)。CustomView 包含所有可见的控件和文本框和按钮。CustomView 上没有高度限制。

于 2012-12-01T03:07:52.150 回答