2013-10-09 54 views
1

我有一個包含200-300不同高度單元格的表格+一個包含UITextView的單元格(這樣的表格用於讀取和發送消息)。我需要在輸入文本時動態調整單元格(包含UITextView)的高度。我用下面的代碼,以觸發tableView:heightForRowAtIndexPath:iOS觸發單元格tableView:heightForRowAtIndexPath:

[tableView beginUpdates]; 
[tableView endUpdates]; 

但是這會觸發呼籲tableView:heightForRowAtIndexPath:所有行。如果表格有很多行,這會降低性能。另一種方法可能是使用UITableView reloadRowsAtIndexPaths:方法,但這會導致鍵盤消失(UITextView辭去第一響應者)。

是否有可能只觸發調用tableView:heightForRowAtIndexPath:單行或有任何其他方法如何動態調整表格單元格?

+0

嘗試覆蓋文本字段:shouldChangeCharactersInRange:replacementString:功能,並設置相應的單元格嗎? (只要確保你知道你正在編輯哪個單元格。)你也可以告訴我你對textfield的使用更多一點嗎?也許我可以給你一個更好的答案。 –

+0

@TotumusMaximus你可以在'textField:shouldChangeCharactersInRange:replacementString:'內做些什麼?我使用UITextView輸入文本:)並且它是UITableViewCell.contentView的子視圖 –

回答

3

重新加載某些行使用:

NSArray *array = [NSArray arrayWithObject:indexPath]; 
[self.tableView reloadRowsAtIndexPaths:array withRowAnimation:UITableViewRowAnimationNone];