UITableView多列实现

本文关键字:实现 UITableView | 更新日期: 2023-09-27 18:10:48

我,就像我看到许多其他人一样,正在努力接受UITableView不支持多列的事实。我看到有人提到UICollectionView"这样做",但由于有限的文档/示例,我不明白如何最好地实现这一点。

我刚从Android版本出来,这个问题很简单,但是我浪费了几个小时试图在iOS上解决这个微不足道的问题。

我正在使用Xamarin,我所要做的就是显示一个购物车。

4列:名称,数量,价格,和一个删除按钮。

我一直在尝试实现4个独立的UITableView的,我一直在玩UITableViewSource的例子实现在这里:https://developer.xamarin.com/recipes/ios/content_controls/tables/populate_a_table/。然而,这依赖于字符串数组的值,感觉就像一个hack。我不确定我该如何修改这一点,以便我可以传入一个按钮,它有自己的点击事件。

有没有人能帮我解释一下如何才能最好地绕过显示购物车的琐碎任务?

我也不确定如何最好地设置标题"名称","数量","价格"等。我把它们作为另一行相加吗?

UITableView多列实现

您应该使用任何您想要的布局自定义单元格。

只需创建Cell(在Xamarin Studio中右键单击解决方案资源管理器中的文件夹->添加->新文件-> iOS -> iPhone TableView Cell),并按您想要的布局。

然后重写表源中的方法:

public class CustomTableSource : UITableSource
{
    IEnumerable datasource;
    const string cellIdentifier = "YourCustomCell";  
    public CustomTableSource(IEnumerable datasource)
    {
        this.datasource = datasource;
    }  
    public override nint RowsInSection (UITableView tableview, nint section)
    {
        return datasource.Count();
    }   
    public override UITableViewCell GetCell (UITableView tableView, NSIndexPath indexPath)
    {
        var cell = tableView.DequeueReusableCell (cellIdentifier) as YourCustomCell;
        if (cell == null)
            cell = new YourCustomCell(cellIdentifier);
        // populate cell here
        // for if your cell has UpdateData method 
        cell.UpdateData(datasource[indexPath.Row]);
        return cell;
    }
}

更多信息可以在这里找到

UPD表源样本