Swift ios在listview和gridview

时间:2015-05-28 22:12:17

标签: ios swift

我刚进入ios swift,现在正试图在listview和更大的listview之间切换。

我现在拥有的是正常的列表视图。我想要做的是创建一个按钮,在列表视图和"更大的"之间切换。 listview例如在Instagram中的每个列表项中都有更大的图像。

这是通过创建两个单独的viewcontrollers来完成的吗?

2 个答案:

答案 0 :(得分:0)

你的问题根本不清楚。 显然可以使用两个ViewControllers执行创建 一个Segue将选中的Object传递给下一个视图。 或者,如果您使用的是ScrollView,则可以使用现有的缩放方法(zoomToRect)。

答案 1 :(得分:0)

我做的工作是在主集合视图类中有2个UIButton连接2个func,如下所述

    // Use to define whether displaying grid view or block view
    // useful when you use nib files for cells (see the 3rd code example)
    // true by default
    var isGridView = true

    loadGridView () {
        isGridView = true

        collectionView?.performBatchUpdates({
             // load or setup for gridlayout 

        }, completion: nil)

        collectionView?.reloadData()
   }

    loadBlockView () {
        isGridView = false

        collectionView?.performBatchUpdates({
             // load or setup for blocklayout 

        }, completion: nil)

        collectionView?.reloadData()
   }

例如,您可以访问this article for more information

!!!如果您正在使用nib作为单元格,则需要注册所有nib并且其类也要注意

   func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
        var cell:UICollectionViewCell

        if(isGridView) {
            let gridCell = collectionView.dequeueReusableCellWithReuseIdentifier(cellId, forIndexPath: indexPath) as! CustomGridViewCellClass
            // some setup

            cell = gridCell
        } else {
            let blockCell = collectionView.dequeueReusableCellWithReuseIdentifier(cellId, forIndexPath: indexPath) as! CustomBlockViewCellClass
            // some setup

            cell = blockCell
        }

        return cell
  }