2012-07-25 49 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();