2010-12-07 22 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,因为它传递给它的引用,你可以访问它的值,做你可能需要的任何验证,并将它分配回文本域。

相关问题