Swift 中的约束不起作用

Posted

技术标签:

【中文标题】Swift 中的约束不起作用【英文标题】:Constraints in Swift not working 【发布时间】:2017-10-03 09:44:21 【问题描述】:

我正在尝试为我的视图添加一些约束,但每次我切换设备时,视图都会变得疯狂。我怎样才能解决这个问题?

我希望它在 iPhone 8 Plus 上的外观和外观:

我切换到 iPhone SE 后的样子:

我添加了这些约束:

0 顶 还剩 0 个 0 对 686底

【问题讨论】:

【参考方案1】:

如果你的底部约束大于设备的高度,自然会超出范围

此外,如果屏幕高度小于 686,您的约束将不明确。

您需要有一个 高度约束,常数为 50 才能在视图上设置而不是底部约束。

【讨论】:

底部是 646 而不是 686 我的错误。我修好了它。我所做的: - 移除了底部约束 - 将高度设置为常数。谢谢【参考方案2】:

对于任何约束都具有如此巨大的价值是不可取的。因此,在更换设备时,屏幕的高度可能会发生变化,您的限制也会被打破。

首选方法是创建一个高度约束并将其设置为 686,并且不要设置底部约束,因为不再需要它。但是如果屏幕尺寸较小,问题可能会出现在这里,因为底部的视图将不可见。为了克服这个问题,您应该使用滚动视图并将此内容视图放在滚动视图中。

【讨论】:

【参考方案3】:

您可以设置视图的高度约束而不是底部约束 或者 你可以使用 Size 类

【讨论】:

以上是关于Swift 中的约束不起作用的主要内容,如果未能解决你的问题,请参考以下文章

编程约束在 UICollectionViewCell Swift 中不起作用

在 Swift 中以编程方式添加约束不起作用

Swift编程约束下边距不起作用

Apple Swift:String 类型的泛型类型约束仅不起作用

swift animateWithDuration 在 iOS 7 中不起作用

Swift UIView 小部件自动布局不起作用