如何制作此网格布局

How to make this grid layout

我需要这个网格布局,带有 Storyboard 的视图结构。是不是更容易设置,还是需要计算size/4,乘以index,计算中心X,Y坐标,每次旋转调整NSLayoutConstraint

您可以使用默认垂直的 UIStackView 并将其轴更改为横向大小 class 的水平,分布 Fill-Equally

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {

    if UIDevice.current.orientation == .portrait
    {
        self.stackV.axis = .vertical
    }
    else
    {            
        self.stackV.axis = .horizontal
    }

}

上面的答案是完美的,但我们也可以通过使用 storyboard.To 解释我得到 3 UIViewstack view 下面的 属性.

现在,当我从 portrait 模式转到 landscape 时,屏幕的高度从 regular 转换为 compact。所以我们可以更改 stack view axisverticalhorizontal根据身高变化的screen.belowgif直观的给大家讲解一下

有关更多信息,您可以访问此 link