所以我有一个非常复杂的项目。我直接使用 interface builder 和 xcode 来构建对象。现在我在 IB 中构建了 UIScrollViews,它们需要在这些地方构建,并且 UIButtons 构建在这些 ScrollView 之上。同一个位置有多个 ScrollView ,但这应该不会有太大区别。
无论如何,问题是它在 iPhone 4 上完美运行。但是在 iPhone 5 上构建时,它会将 ScrollView 移动到屏幕底部,之前它是 x=0,y=361。我的所有其他物体都正确放置,下面有一些空白空间。我知道如何检查 iPhone 5:
我不知道如何用颜色和诸如此类的东西在这里发布代码,它们使它变得 super 复杂所以我将如何做 if/then:
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){
CGSize result = [[UIScreen mainScreen] bounds].size;
if(result.height == 480){
// iPhone Classic
}
if(result.height == 568){
// iPhone 5
}
}
我不知道在 IB 中执行 if/then 的方法。我试过以这种方式手动更改位置:
[peopleScrollView scrollRectToVisible:CGRectMake(0, 449, 320, 58) animated:NO];
那没有用。那么,我要问的是有没有办法在代码本身中更改 UIScrollView 的位置?如果没有,那么我想我将不得不在代码中手动构建所有 5 个 UIScrollView,我绝对不想这样做。
最佳答案
如果您选择 ScrollView 对象,然后单击大小检查器模块,您会注意到默认的自动调整大小蒙版设置为:左、上。
根据您的 View “模式”选项和 View 的“自动调整 subview 大小”选项,与 3.5 英寸屏幕相比,此 View 和 subview 将在 4 英寸屏幕上向下移动。
取决于您的特定 View 应该在每个屏幕上的外观由您决定。在我的项目中,我将自动调整大小蒙版调整为左、上和下,
因为我希望我的 UIScrollView 和 subview 保留在 3.5"和 4"屏幕的顶部(如 IB 中绘制的那样)。
您还可以在自动调整大小的图形中的框内设置垂直和/或水平调整大小的箭头
.这将尝试根据动态大小的屏幕相应地缩放对象。
Autosize Mask 应该是您使用 iPhone5 的新好 friend 。
参见 Xcode Interface Builder. How Do These Autosizing Mask Settings Differ?了解更多信息。
关于objective-c - xcode 4.5,iPhone 5 破坏了我的 UIScrollView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12645506/