使用自动布局 Xcode 居中

Posted

技术标签:

【中文标题】使用自动布局 Xcode 居中【英文标题】:Centering with Auto layout Xcode 【发布时间】:2014-08-01 22:51:29 【问题描述】:

我正在开发一个 swift 应用程序,我正在 Xcode 的界面生成器中设计界面。我的界面(由两个 UILabel 组成,在纵向模式下看起来不错,但在横向模式下看起来很糟糕。

问题是标签在旋转时不会像我想要的那样保持居中。我使用了以下自动布局约束:

Upper edge constraint: top layout guide 
Lower edge constraint: bottom layout guide
Right edge constraint: standard value
Left edge constraint: standard value

这些设置一定不起作用,因为标签在旋转时不会保持居中。用于自动布局以使此标签居中的正确约束是什么?

【问题讨论】:

【参考方案1】:

您可以在界面生成器中实现所需的效果,我建议您使用程序化自动布局约束来实现。

[self.view addConstraint: [NSLayoutConstraint
    constraintWithItem:self.view 
    attribute:NSLayoutAttributeCenterX 
    relatedBy:NSLayoutRelationEqual 
    toItem:"YOUR VIEW" 
    attribute:NSLayoutAttributeCenterX 
    multiplier:1
    constant:0]];

上面的 NSLayoutAttributeCenterX 属性使“YOUR VIEW”水平居中。对于垂直居中布局,您可以通过将 self.view 和“YOUR VIEW”的属性属性更改为 NSLayoutAttributeCenterY 来实现。

【讨论】:

谢谢!几个问题 - 我可以同时在水平和垂直方向上设置代码中心吗?另外,我把上面的代码放在哪里?就在 IBoutlet 下,还是其他地方?对不起,我只是在学习 swift! 恐怕你不能像我知道的那样快。您需要为水平和垂直居中设置两次约束。代码应该放在 viewDidLoad 方法中。

以上是关于使用自动布局 Xcode 居中的主要内容,如果未能解决你的问题,请参考以下文章

使用自动布局在 UITableViewCell 中将 UILabel 居中

Xcode 6 不遵守自动布局约束

在所有屏幕的自动布局上以固定宽度居中 UIButton

Xcode 自动布局:最适合正方形

iOS 和 Xcode 6:按钮上的自动布局文本缩放

使用自动布局居中模态视图