【问题标题】:xcode 4.5, iPhone 5 breaks my UIScrollViewxcode 4.5,iPhone 5 打破了我的 UIScrollView
【发布时间】:2012-09-28 18:34:23
【问题描述】:

所以我有一个非常复杂的项目。我直接使用 interface builder 和 xcode 来构建对象。现在,我在 IB 中构建了 UIScrollViews,它们需要在其中构建,并且 UIButtons 构建在这些滚动视图之上。在同一个地方有几个滚动视图,但这真的不应该有太大的区别。

无论如何,问题在于它在 iPhone 4 上完美运行。但是在 iPhone 5 上构建时,它将滚动视图移动到屏幕底部,之前它是 x=0,y=361。我所有的其他对象都被正确放置,它们下面有一些空白空间。我知道如何检查 iPhone 5:

我不知道如何在这里用颜色和诸如此类的东西发布代码,它们使它变得超级复杂,所以我将如何执行 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,我绝对不想这样做。

【问题讨论】:

    标签: objective-c uiscrollview xcode4.5


    【解决方案1】:

    如果您选择您的 Scroll View 对象,然后单击 Size Inspector 模块,您会注意到默认的 Autosize Mask 设置为:Left, Top。

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

    根据您的特定视图应该在每个屏幕上显示的内容由您决定。在我的项目中,我将自动调整大小遮罩调整为左、上和下,

    因为我希望我的 UIScrollView 和子视图在 3.5" 和 4" 上保持在屏幕顶部(在 IB 中绘制)。

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

    。这将尝试为动态大小的屏幕相应地缩放对象。

    Autosize Mask 应该是您使用 iPhone5 的新朋友。

    请参阅Xcode Interface Builder. How Do These Autosizing Mask Settings Differ? 了解更多信息。

    【讨论】:

    • 知道如何在没有笔尖或情节提要的情况下做到这一点吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-15
    • 1970-01-01
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    • 2015-03-15
    相关资源
    最近更新 更多