使用 CGRect 或使用约束以编程方式定位视图之间有什么区别?

What´s the difference between positioning a View programmatically with CGRect or with Constraints?

我正在以编程方式设置我的视图,以便在按下按钮时显示。我的问题是,使用 CGRect 或使用 storyboard/programmatic 约束中的约束以编程方式定位视图之间有什么区别?

我尝试以编程方式设置它并且它工作正常。

简化版:

  • 使用 CGRect 你给某些 UIView 将有大小和位置取决于这些值
  • 使用约束,您可以说明如何创建这些

CGRect 不会像 Constraints 那样适合所有屏幕尺寸。例如。 CGRect x: 100, y: 500 可能适合大屏幕,但对于 iPhone SE 它不起作用,因为项目将不在屏幕上。然而,由于诸如 Center X & Y 之类的限制,具有宽度和高度限制的限制将使所有设备上的屏幕中心居中。