iOS 从网格到带有 2 个原型单元格的列表的 collectionView

iOS collectionView from grid to list with 2 prototypes cells

我想制作一个具有 2 种样式的 collection:网格和列表。

所以,目前,我有:

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

但是我的 GetCell 方法在我的 DataSource returns 中只有 1 个原型的单元格。因此,当我切换时,处置单元会发生变化 但不会改变它们的内容。

获取单元格方法:

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:图像在堆栈中 post:Display items in different styles(List, Grid, Blocks) in Xamarin ios?

您可以使用 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的开关按钮可以使用 switch.isSelected. = !switch.isSelected