Swift - 关闭主视图后调整大小集合视图

时间:2016-11-16 19:09:44

标签: ios swift

我的项目有一个拆分视图,点击一个按钮可以最小化主视图。我使用此功能为按钮最小化主视图:

  @IBAction func newProposalBtnWasClicked(_ sender: AnyObject) {
    if splitViewController?.preferredDisplayMode == .automatic {
      splitViewController?.preferredDisplayMode = .primaryHidden
    } else {
      splitViewController?.preferredDisplayMode = .automatic
    }
    var sub = self.childViewControllers[1] as! ProductsPlatesViewController
    sub.collectionView.reloadData()
  }

当主视图设置为.primaryHidden时,我的单元格间隔错误:

在集合视图中,View控制器我定义了该函数:

before after

func collectionView(_ collectionView: UICollectionView,
                      layout collectionViewLayout: UICollectionViewLayout,
                             sizeForItemAtIndexPath indexPath: IndexPath) -> CGSize {

    if splitViewController?.preferredDisplayMode == .primaryHidden {
      return CGSize(width: self.view.frame.width/3.0 - 10.0, height: self.view.frame.height/4.0 - 10.0)
    }

    return CGSize(width: self.view.frame.width/2.0 - 10.0, height: self.view.frame.height/4.0 - 10.0)
  }

但按下按钮时,该功能显然没有被调用。如何调用函数并重新定义每行的单元格数?

修改

我在我的按钮动作功能(上面编辑的代码)上更改了put reloadData()方法。

我的sizeForItemAtIndexPath函数仍然相同。我得到的结果是:

enter image description here enter image description here

它类似于在设置preferedDisplayMode之前使用sizeForItemAtIndexPath,但是在代码中这是在调用reloadData()函数之前做出的。哪里出错了?

0 个答案:

没有答案