需要故事板元素处于正确的位置,并且在不同的iPhone型号上具有正确的大小

时间:2014-03-13 19:36:16

标签: ios iphone objective-c uibutton storyboard

现在我的应用程序中有2个视图控制器。他们都使用UIViews和UIButtons,我已经去了Storyboard中的Size Inspector并更改了它们的宽度和高度值,对于一些我甚至更改了X和Y值。

我的iPhone 4s上的一切看起来都很完美,但我刚刚意识到我设置的这些值可能不适用于iPhone 3或iPhone 5等其他设备。

以下是我为其中一个UIViews添加的值的示例:

  1. X:0
  2. Y:0
  3. 宽度:320
  4. 身高:568
  5. 以下是我为其中一个UIButtons添加的值的示例,我希望它完全位于屏幕中间:

    1. X:139
    2. Y:224
    3. 宽度:41
    4. 身高:30
    5. 对于看起来扭曲或错位的故事板元素以及不同iPhone型号的屏幕错误部分,我有什么可担心的吗?我应该做一些不同的事情,比如以编程方式创建它们吗?

      我只是想确保在发布应用程序时,用户iPhone上的iPhone看起来不正确,直到一周后我才能访问任何不同的iPhone型号。< / p>

      感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

这就是自动布局的目的。我不会详细介绍它,因为它上面有很多其他帖子和信息来源,但无论屏幕大小如何,您都可以轻松地将按钮置于中心位置。您还可以在界面构建器中执行所有这些操作。 如果你还没有读过它,这是一个好的开始:http://www.raywenderlich.com/50317/beginning-auto-layout-tutorial-in-ios-7-part-1

答案 1 :(得分:1)

比Autolayout更容易理解的另一个选项是自动调整大小的掩码,也称为“struts and springs”:

您可以在Interface Builder或代码中设置自动调整大小屏蔽(请参阅组件的autoresizingMask属性): Autoresizing masks programmatically vs Interface Builder / xib / nib

虽然支柱和弹簧不如Autolayout强大,但它们适合大多数情况下的需求。我在应用程序商店中有三个应用程序,但还没有需要Autolayout。

要使用“支柱和弹簧”,只需turn Autolayout off

答案 2 :(得分:0)

如果您的自动布局属性设置得很好,那么您可能很好。如果您想以编程方式执行此操作,可以使用以下内容:(将按钮放在中心位置)

customButton.center = customView.center;

如果您希望某些内容符合屏幕尺寸,请执行以下操作

customView.bounds = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height;