有没有办法在加载后更改单元格的值?实际上我在表中有一个文本字段,插入相同的值后,我需要对textfield值进行一些数值运算,值计算器需要显示在下一个单元格中的标签上。
那么我怎么能得到相同的结果?任何想法?
提前致谢。
答案 0 :(得分: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 :(得分:1)
对于您要做的事情,最好的办法是让您的视图控制器为<UITextFieldDelegate>
,将您的单元格的文本字段委托设置为self,然后实现textFieldDidEndEditing:委托方法。
更改您的接口文件以采用协议
@interface YourViewController : UIViewController <UITextFieldDelegate>
然后将视图控制器设置为相关UITextField的委托...
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
...
yourCustomCell.yourTextField.delegate = self
}
最后实施
- (void) textFieldDidEndEditing:(UITextField *)textField.
每次用户完成UITextField编辑时都会调用此方法,并且当它传递对它的引用时,您可以访问它的值,执行您可能需要的任何验证并将其分配回文本字段。