Monotouch iphone定制UITableView

时间:2013-04-18 23:55:06

标签: c# iphone uitableview xamarin.ios xamarin

我按照this教程创建了自定义单元格。

我在Interface Builder中创建了一个自定义单元格,如下所示: enter image description here

在我的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; 
    }  

问题是最终的显示是这样的:

enter image description here

似乎有些过度研磨。任何想法为什么会发生这种情况?

谢谢!

2 个答案:

答案 0 :(得分:1)

您需要将表格视图的RowHeight设置为IB中的视图高度。这应该是myTable.RowHeight = ...

如果每行的高度不同,可以在委托中使用GetHeightForRow,但速度要慢得多,导致表格视图在第一次渲染之前迭代​​所有单元格(因此可以计算滚动高度)

答案 1 :(得分:0)

您需要为项目中使用的自定义单元格设置RowHeight。由于您没有提供任何高度,因此Table将默认值分配给TableViewCell。您提供的RowHeight应与Interface Builder(IB)中的相同。