iOS集合从网格到列表,包含2个原型单元格

时间:2017-06-22 14:49:58

标签: ios list grid cells collectionview

我想制作一个包含2种样式的集合:Grid和List。

所以,此刻,我有:

  • 1个集合查看
  • 2流程布局
  • 1 dataSource
  • 2个原型细胞

我必须使用相同的数据源。我可以在布局之间切换,这不是问题。

但我的 DataSource 中的 GetCell 方法只返回1个原型的单元格。因此,当我切换时,处置单元格会改变而不是其内容。

GetCellMethod:

public override UICollectionViewCell GetCell(UICollectionView collectionView, NSIndexPath indexPath)
    {
        Transaction transaction = Transactions[indexPath.Row];

        var cell = (TransactionCellList)collectionView.DequeueReusableCell("transactionList", indexPath);

        cell.UpdateRow(transaction);

        return cell;

    }

如何使用切换按钮网格/列表

在这两个原型单元格之间做出改变

非常感谢你的帮助!!!

PS:图片显示在堆叠帖子上:Display items in different styles(List, Grid, Blocks) in Xamarin ios?

1 个答案:

答案 0 :(得分:0)

您可以使用UIButton的.isSelected属性在单元格之间切换

public override UICollectionViewCell GetCell(UICollectionView collectionView, NSIndexPath indexPath)
    {
Transaction transaction = Transactions[indexPath.Row];
if switch.isSelected {
 var cell = (TransactionCellList)collectionView.DequeueReusableCell("transactionList", indexPath);

        cell.UpdateRow(transaction);

        return cell;

}
        else{
   var cell = (TransactionCellList)collectionView.DequeueReusableCell("transactionGrid", indexPath);

        cell.UpdateRow(transaction);

        return cell;
}


 }

您可以使用切换按钮的IBAction Šwitch.isSelected. = !switch.isSelected