Xcode 4.5,iPhone 5 破坏了我的 UIScrollView。

7
我有一个相当复杂的项目。我同时使用界面生成器和xcode直接构建对象。现在,我在IB中构建UIScrollViews,并在需要的位置上构建UIButtons。同一位置有几个滚动视图,但这应该不会有太大的影响。
问题是在iPhone 4上完美运行。但是在iPhone 5上构建时,它将Scrollviews移动到屏幕底部,在此之前它是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个UIScrollViews,这绝对不是我想要做的。

1个回答

13

如果你选择了你的滚动视图对象,然后点击“Size Inspector”模块,你会发现默认的自动大小掩码设置为:左、上。

Left-Top Autosize / Offset Mask

根据你的视图“Mode”选项和你的视图的“Resize Subviews Automatically”选项,这个视图和子视图将在4英寸屏幕上相对于3.5英寸屏幕向下移动。

取决于你的特定视图在每个屏幕上应该是什么样子由你决定。在我的项目中,我将自动大小掩码调整为左、上和底部

Left-Top-Bottom Automask / Offset因为我希望我的UIScrollView和子视图在3.5英寸和4英寸屏幕上保持在屏幕顶部(如IB中所绘制)。

你还可以在自动大小图形框内设置垂直和/或水平大小箭头。

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

自动大小掩码应该成为iPhone5的新朋友。

有关更多信息,请参见Xcode Interface Builder. How Do These Autosizing Mask Settings Differ?


有没有什么办法可以在没有Nib或Storyboard的情况下完成这个任务? - Luke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接