Uibutton有两种布局

我仍然试图全面了解约束和目标c最佳实践。

我需要根据变量动态创建1到6个UIButtons。 我对这部分感到满意​​,但对于如何定位它们感到困惑:

  1. 按钮的数量可以是1-6。
  2. 按钮必须大小相同。
  3. 横向和纵向方向将具有不同的布局。
  4. 它们必须在横向视图中“浮动”并在纵向视图中垂直对齐到顶部。

在此处输入图像描述

我猜我需要一个位于视图底部的容器,根据方向改变高度,然后根据容器宽度制定内部按钮的规则。 但是怎么办呢我不知道。

从长远来看,最好使用UICollectionView 。 子类UICollectionView并将其添加到Storyboard中。 将集合视图的出口添加到视图控制器并设置其委托和数据源。 将到视图控制器并实现委托方法。 对于按钮,使用UIButton作为其子视图创建自定义UICollectionViewCell 。 然后在cell:ForRowAtIndexpath:方法中,初始化UICollectionViewCell子类,并设置UIButton的属性。 这可能不是您想要的答案,但就布局而言, UICollectionView提供了更大的灵活性。 您可以在此处阅读有关UICollectionViewDelegateFlowLayout更多信息。