MonoTouch中的自定义UITableViewCell

时间:2014-02-13 06:59:41

标签: ios uitableview xamarin.ios xamarin

我使用Xamarin Studio在MonoTouch项目中创建一个新的自定义表格单元格(文件 - >新建 - >文件... - > iOS - > iPhone桌面视图单元格)。它创建了UITableViewCell的MyViewCell子类。该类已包含静态Create()方法。

然后我以这种方式在表的GetCell方法中使用这个类:

public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
{
    var cell = tableView.DequeueReusableCell(MyViewCell.Key) as MyViewCell;

    if (cell == null)
    {   
        cell = MyViewCell.Create();
    }

    // my own code to update the cell content
    cell.Update(someData);

    return cell;
}

在Update方法中,我使用了一些子视图转换。问题是当第一次创建单元格时(调用Create方法),不会应用转换。

但是,如果我将更新安排到下一个运行循环迭代,一切正常:

NSTimer.CreateScheduledTimer(TimeSpan.Zero, () =>
{
    cell.Update(someData);
});

这是什么问题?我可以在不使用此黑客的情况下解决问题吗?

1 个答案:

答案 0 :(得分:0)

当您调用Update

时,表中第一次没有添加单元格

用于单元子视图转换覆盖单元类上的PrepareForReuse方法或LayoutSubviews方法,具体取决于您的需要。