2012-07-25 51 views
1

我从UITableViewSource继承并重写GetHeightForRow类:的TableView不叫GetHeightForRow

public override float GetHeightForRow(UITableView tableView, NSIndexPath indexPath) 

然而,在时间的OS停止调用这个方法有些问题,所以我所有的细胞现在具有相同的高度。表和表格源的其余部分工作正常。这很奇怪,我已经尝试了各种各样的东西,但它只是不叫方法。表格源的其他重写方法通常被调用。

是否有某种设置使UITableView停止呼叫GetHeightForRow

+0

你是说在同一个执行过程中? (工作然后停止)或代码更新后停止工作? – poupou 2012-07-25 17:09:12

+0

如果您将'NSIndexPath'参数更改为'UIMutableIndexPath'类型,会发生什么? – 2012-07-25 17:10:52

+0

@poupou代码更新后停止工作,但与表无关。这非常奇怪,如果GetCell和RowsInSection仍然被调用,我的代码更新如何突然阻止iOS/Monotouch调用'GetHeightForRow'。 – cheeesus 2012-07-25 17:40:25

回答

4

你能来设置这两个UITableViewDelegate类型的Delegate(或WeakDelegate)和Source(类型UITableViewSource)的财产?

他们都暴露了GetHeightForRow和他们将冲突,如果两者在相同的UITableView上使用。

+0

非常感谢你,就是这样!那个错误一定是因为多次提交而出现的,直到现在我才注意到.. – cheeesus 2012-07-25 22:07:05

+0

再次感谢Sebastien,我刚刚意识到'UITableViewSource'结合了'UITableViewDelegate'和'UITableViewDataSource',所以我不需要额外的委托:) – cheeesus 2012-07-25 22:14:22

0

在ViewWillAppear方法中添加以下行。这可以解决。

 TableView.Source = new ItemsSource();