UITableView多列实现

时间:2015-09-01 05:41:07

标签: c# ios xamarin

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

我刚刚来自Android版本,这很简单,但我已经浪费了几个小时试图解决iOS上这个微不足道的问题的解决方案。

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

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

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

有人可以帮忙解释一下如何最好地解决显示购物车的琐碎任务吗?

我也不确定如何最好地设置标题"姓名","数量"," Price"我只是将它们添加为另一行吗?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

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

只需创建Cell(在Xamarin Studio中右键单击解决方案资源管理器中的文件夹 - >添加 - >新文件 - > iOS - > iPhone TableView单元格)并将其布置为您想要的任何内容。

然后覆盖表源中的方法:

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;
    }
}

可以找到更多信息here

UPD TableSource示例