objective-c - xcode 4.5,iPhone 5 破坏了我的 UIScrollView

标签 objective-c uiscrollview xcode4.5

所以我有一个非常复杂的项目。我直接使用 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 对象,然后单击大小检查器模块,您会注意到默认的自动调整大小蒙版设置为:左、上。

Left-Top Autosize / Offset Mask

根据您的 View “模式”选项和 View 的“自动调整 subview 大小”选项,与 3.5 英寸屏幕相比,此 View 和 subview 将在 4 英寸屏幕上向下移动。

取决于您的特定 View 应该在每个屏幕上的外观由您决定。在我的项目中,我将自动调整大小蒙版调整为左、上和下,

Left-Top-Bottom Automask / Offset因为我希望我的 UIScrollView 和 subview 保留在 3.5"和 4"屏幕的顶部(如 IB 中绘制的那样)。

您还可以在自动调整大小的图形中的框内设置垂直和/或水平调整大小的箭头

Vertical and Horizontal Autosize Mask .这将尝试根据动态大小的屏幕相应地缩放对象。

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/

相关文章:

objective-c - 如何在 NSArray 中找到某种对象?

ios - 如何使用 ImageView 制作无限分页 ScrollView ?

gcc - 无法打开由 CMake 创建的 Xcode 项目

iPhone模拟器无法连接互联网

ios - UIStoryboard 应用程序中的 PopToViewController

objective-c - "no known class method for selector"困惑

iphone - 如何从 UIColor 获取色调、饱和度和亮度?

objective-c - 对 ' ' 的引用是 Xcode 中的不明确错误

ios - UIScrollView 不完全滚动

ios - 如何以编程方式设置 ScrollView 高度