2010-12-07 21 views
1

有沒有什麼方法可以在加載後更改單元格的值?實際上,我在表格中有一個文本字段,在插入相同的值後,我需要對文本字段值進行一些數字操作,值計算器需要在下一個單元格中的標籤上顯示。如何在目標c中重新加載後更改單元格的值?

那麼我怎麼能得到相同的結果?任何想法?

在此先感謝。

+0

標籤創建運行時? – KingofBliss 2010-12-07 13:09:01

+0

我無法理解你的問題在哪裏。您是否需要更新UITextField的文本,並且該文本字段位於您沒有參考的單元格內? – AYBABTU 2010-12-07 13:36:43

+0

是在運行時創建的。在cellForRowAtIndexPath方法中,我在文本字段中傳遞值,該值應該反映在下一個單元格中的標籤中。文本字段值應該保持原樣,並且標籤值應該從0更改爲某些值。 – Sarah 2010-12-08 07:08:38

回答

3

有幾種方法可以更新UITableView中的單元格。

1)調用表格視圖方法reloadRowsAtIndexPaths:withRowAnimation:。這將觸發對委託方法tableView:cellForRowAtIndexPath:的調用。如果您有更新的數據源,這將是更新單元格的好方法。

NSIndexPath *indexPathOfUpdatedCell = ... 
[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPathOfUpdatedCell] withRowAnimation:UITableViewRowAnimationFade]; 

2)也可以直接更新單元格。您可以使用cellForRowAtIndexPath:

NSIndexPath *indexPathOfUpdatedCell = ... 
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPathOfUpdatedCell]; 
cell.textLabel.text = @"new value"; 

要創建特定行和部分的索引路徑,可以使用indexPathForRow:inSection

NSUInteger row = ... 
NSUInteger section = ... 
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:row inSection:section]; 
1

對於你正在嘗試做的,最好的辦法是讓你的視圖控制器<UITextFieldDelegate>,你的文本字段委託設置爲自己,然後實現textFieldDidEndEditing:委託方法。

更改您的接口文件採用協議

@interface YourViewController : UIViewController <UITextFieldDelegate> 

然後設置視圖控制器爲您相關的UITextField(S)的代表......

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    ... 
    yourCustomCell.yourTextField.delegate = self 
} 

最後落實

- (void) textFieldDidEndEditing:(UITextField *)textField. 

每次用戶完成編輯UITextField時,都會調用此方法, nd,因爲它傳遞給它的引用,你可以訪問它的值,做你可能需要的任何驗證,並將它分配迴文本域。

相關問題