1

我有一个用于 iPhone 设备的故事板文件,在其中一个视图中有一个包含 UIPickerView 的子视图,并且当它在 iPhone 4 上运行时,UIPickerView 会卡在视图底部,但是当对于 iPhone 5,UIPickerView 出现在屏幕底部的上方一点。

如果我解决了 iPhone 5 的问题,当我在 iPhone 4 上运行 UIVPickerView 时,它不会完全出现。(它的一半出现在屏幕下方)

那么有没有办法让 UIViewPicker 为 iphone 4 和 5 分辨率做好准备?

注意:我通过使用 UIPickerView 创建一个全新的子视图解决了这个问题。现在无论设备是什么,它都布置得很好。

4

3 回答 3

0

创建选取器时,需要使用屏幕的大小来确定位置。似乎您只是手动输入 y 的坐标,这仅在使用一种屏幕尺寸时才有效。

如果您所在的视图与屏幕大小相同(很可能是但也可能不是),您可以执行以下操作:

int y = self.view.frame.size.height;

并将其用作您的pickerView 的y 坐标。

否则,您可以使用以下方法找到屏幕的大小:

[[UIScreen mainScreen] applicationFrame].size.width //if in portrait
//or
[[UIScreen mainScreen] applicationFrame].size.height //if in landscape

然后,如果您有一个,则必须从中减去 navigationController 的高度。

于 2013-03-22T23:15:03.193 回答
0

如果您使用自动布局,您应该能够更改选择器使用的约束以使其粘在底部。选择picker,点击storyboard右下角的“H”形自动布局菜单图标,选择“Bottom Space to Superview”。然后删除将选择器附加到屏幕顶部的任何约束。如果这不起作用,请确保所有选择器的超级视图都具有将它们附加到底部的约束;您必须决定是否要在 iPhone 5 上调整它们的大小或向下滑动。

于 2013-03-23T02:29:19.893 回答
0

我解决了这个问题。不知道出了什么问题,但我删除了子视图,然后创建了一个新的并添加了 UIPickerView。令人惊讶的是,现在无论设备是什么,它都布置得很好。

于 2013-03-23T14:55:05.257 回答