博客> collectionView点击cell变换大小
collectionView点击cell变换大小
2018-08-17 20:19 评论:0 阅读:910 心里美滋滋
ios tableview collectionView 点击cell变化大小

点击cell,实现动态切换cell大小的动画

第一种实现方案,用collectionView来实现,控制器称为为collectionView 的UICollectionViewDelegateFlowLayout代理。在点击cell调用代理方法的时候分情况记录当前选中的cell序号,然后调用performBatchUpdates,然后系统会调用以下两个方法,然后对cell大小进行处理即可实现。示例如下

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { let cell = collectionView.cellForItem(at: indexPath); if selectedIndexPath == indexPath { cell?.layer.borderColor = normalColor; selectedIndexPath = nil; } else { if selectedIndexPath != nil { let selectedCell = collectionView.cellForItem(at: selectedIndexPath!) selectedCell?.layer.borderColor = normalColor } self.selectedIndexPath = indexPath; cell?.layer.borderColor = selectedColor } self.collectionView.performBatchUpdates({

    }) { (finished) in

    }
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    if indexPath == selectedIndexPath {
        return CGSize.init(width: self.collectionView.frame.width - 40, height: 120);
    }
    return CGSize.init(width: self.collectionView.frame.width - 40, height: 70);
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
    return UIEdgeInsets.init(top: 10, left: 20, bottom: 0, right: 20);
}

- - 1. > list text here

收藏
0
sina weixin mail 回到顶部