现在我的应用程序中有2个视图控制器。他们都使用UIViews和UIButtons,我已经去了Storyboard中的Size Inspector并更改了它们的宽度和高度值,对于一些我甚至更改了X和Y值。
我的iPhone 4s上的一切看起来都很完美,但我刚刚意识到我设置的这些值可能不适用于iPhone 3或iPhone 5等其他设备。
以下是我为其中一个UIViews添加的值的示例:
以下是我为其中一个UIButtons添加的值的示例,我希望它完全位于屏幕中间:
对于看起来扭曲或错位的故事板元素以及不同iPhone型号的屏幕错误部分,我有什么可担心的吗?我应该做一些不同的事情,比如以编程方式创建它们吗?
我只是想确保在发布应用程序时,用户iPhone上的iPhone看起来不正确,直到一周后我才能访问任何不同的iPhone型号。< / p>
感谢您的帮助。
答案 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;