iOS 从网格到带有 2 个原型单元格的列表的 collectionView
iOS collectionView from grid to list with 2 prototypes cells
我想制作一个具有 2 种样式的 collection:网格和列表。
所以,目前,我有:
- 1 collection 查看
- 2 流布局
- 1 个数据源
- 2 个原型细胞
我必须使用相同的数据源。我可以在布局之间切换,这不是问题。
但是我的 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
我想制作一个具有 2 种样式的 collection:网格和列表。
所以,目前,我有:
- 1 collection 查看
- 2 流布局
- 1 个数据源
- 2 个原型细胞
我必须使用相同的数据源。我可以在布局之间切换,这不是问题。
但是我的 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