我使用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);
});
这是什么问题?我可以在不使用此黑客的情况下解决问题吗?
答案 0 :(得分:0)
当您调用Update
时,表中第一次没有添加单元格用于单元子视图转换覆盖单元类上的PrepareForReuse方法或LayoutSubviews方法,具体取决于您的需要。