【问题标题】:changing constraints of object based on ipad or iphone基于 ipad 或 iphone 改变对象的约束
【发布时间】:2020-10-18 06:05:22
【问题描述】:

在我的代码中,要达到预期的效果,我只能根据使用 iphone 还是 ipad 更改约束条件。所以我需要创建类似 if iphone 约束 = 然后 if ipad 约束的东西。我写了一个我需要做的例子。我只需要更改控制底部ancor的4条语句的最后一行。

     //ipad
     NSLayoutConstraint.activate([
        
        box.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.25),
        box.widthAnchor.constraint(equalTo: view.widthAnchor,multiplier: 0.10),
        box.centerXAnchor.constraint(equalTo: view.centerXAnchor),
        box.centerYAnchor.constraint(equalTo: view.centerYAnchor),

      ])

 //iphone
     NSLayoutConstraint.activate([
        
        box.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.25),
        box.widthAnchor.constraint(equalTo: view.widthAnchor,multiplier: 0.10),
        box.centerXAnchor.constraint(equalTo: view.centerXAnchor),
        box.bottomAnchor.constraint(equalTo: view.centerYAnchor),

      ])

【问题讨论】:

    标签: swift iphone if-statement ipad constraints


    【解决方案1】:

    检查尺码等级。对于 ipad,水平和垂直类都应该是常规的。您可以执行以下操作:

        let horizontalSizeClass = view.traitCollection.horizontalSizeClass
        let verticalSizeClass = view.traitCollection.verticalSizeClass
    
        switch horizantalSizeClass {
        case .regular:
            // Do some layout.
        case .compact:
            // Make compact constraints...
        default:
            // Unspecified. Do something else.
        }
        
        // rest of setup
    

    另外,你不能做任何限制的原因是你输入了break,它结束了switch语句。另一个答案可能有效。

    【讨论】:

    • 你能给我更多的信息吗?我用这个语句叫什么。我试过 = true 并没有编译。
    • 使用视图特征集合 (view.traitCollection.horizontalSizeClass)!
    • 我调整了我的答案。如果您有任何问题,请随时发表评论!
    【解决方案2】:

    您可以使用userInterfaceIdiom检测界面风格:

    switch UIDevice.current.userInterfaceIdiom {
    case .phone: break
    // It's an iPhone
    case .pad: break
    // It's an iPad
    default: break
    // others
    }
    

    【讨论】:

      猜你喜欢
      • 2011-08-30
      • 1970-01-01
      • 2018-01-10
      • 2016-09-14
      • 2020-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多