我按照this教程创建了自定义单元格。
我在Interface Builder中创建了一个自定义单元格,如下所示:
在我的ViewController中,我添加了一个UITableView并将其绑定到数据:
myTable.Source = new ListSource();
ListSource的GetCell方法:
public override UITableViewCell GetCell (UITableView tableView, MonoTouch.Foundation.NSIndexPath indexPath)
{
// Reuse a cell if one exists
CustomListCell cell = tableView.DequeueReusableCell ("QCell") as CustomQuestionsListCell;
if (cell == null)
{
// We have to allocate a cell
var views = NSBundle.MainBundle.LoadNib ("CustomListCell", tableView, null);
cell = Runtime.GetNSObject (views.ValueAt (0)) as CustomListCell;
}
return cell;
}
问题是最终的显示是这样的:
似乎有些过度研磨。任何想法为什么会发生这种情况?
谢谢!
答案 0 :(得分:1)
您需要将表格视图的RowHeight
设置为IB中的视图高度。这应该是myTable.RowHeight = ...
。
如果每行的高度不同,可以在委托中使用GetHeightForRow
,但速度要慢得多,导致表格视图在第一次渲染之前迭代所有单元格(因此可以计算滚动高度)
答案 1 :(得分:0)
您需要为项目中使用的自定义单元格设置RowHeight。由于您没有提供任何高度,因此Table将默认值分配给TableViewCell。您提供的RowHeight应与Interface Builder(IB)中的相同。