【问题标题】:How to set different constraints in a Splash depending on the iPhone size?如何根据 iPhone 尺寸在 Splash 中设置不同的约束?
【发布时间】:2017-07-02 13:46:22
【问题描述】:

我正在做一个项目,其中一个要求是,公司徽标必须出现在距 iPhone 屏幕尺寸顶部 10% 的位置(如果是 iPhone 5,568 的高度,它应该是 57 )。我可以应用一个约束,但据我所知,它是一个固定值,而不是相对的。 我一直在检查 Xcode 的“Vary for traits”功能,但由于我需要的所有尺寸都是 wC hR,所以在这种情况下它不起作用。 另一种解决方案是根据 iPhone 型号应用不同的飞溅,但我不确定这是否可行。

有什么想法吗?谢谢!

【问题讨论】:

  • 使用纵横比限制。你能澄清一下吗?徽标宽度应该是屏幕宽度的 10%,还是徽标左侧的空间应该是屏幕宽度的 10%?
  • 这是一个垂直空间限制,我想我只能对其应用固定值。有没有办法让它相对?
  • 诀窍是在徽标旁边放置一个透明的占位符UIView,并将该视图的高度限制为屏幕高度的 1/10,并将徽标的上边缘限制为占位符的下边缘.

标签: ios iphone xcode constraints splash-screen


【解决方案1】:

您可以使用占位符视图来创建所需的垂直空间。

在徽标上方添加UIView

将此视图的顶部约束到根视图的顶部 将此视图的底部约束到徽标的顶部 将此视图的高度限制为根视图高度的 1/10

【讨论】:

    【解决方案2】:

    您也可以在代码中轻松实现。

    logoImageView.translatesAutoresizingMaskIntoConstraints = false
    
    // This will keep your imageView 10% from the top
    NSLayoutConstraint(item: logoImageView, attribute: .top, relatedBy: .equal, toItem: self.view, attribute: .topMargin, multiplier: 1.0, constant: self.view.frame.size.height/10).isActive = true
    
    // Additional You will want your imageView to be centered.
    NSLayoutConstraint(item: logoImageView, attribute: .centerX, relatedBy: .equal, toItem: self.view, attribute: .centerX, multiplier: 1.0, constant: 0).isActive = true
    

    【讨论】:

    • 因为它在飞溅,我不能编码。这是主要问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-14
    • 2016-10-27
    • 2019-03-23
    • 1970-01-01
    • 2016-01-20
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多