我有UITableViewCell
并在其上添加UILabel
。我在UILabel
的{{1}}上显示了该值。我正在使用此代码执行此任务:
UIPickerView
但是当我执行它时,其他(void)pickerView:(UIPickerView *)pickerView didSelectRow: (NSInteger)row inComponent:(NSInteger)component
{
NSLog(@"row selected:%ld", (long)row);
value = _countingarray[row];
value = [NSString stringWithFormat:@"%d",[value intValue] + [_countingarray[row] intValue]];
[self.mytableview reloadData];
[self hidePickerView];
}
的{{1}}值也会增加。
您能否帮助我根据所选的单元格单独更新UILabel
值。这是我所有功能的完整代码。
UITablViewCell
这是tableview单元格代码,我想要更新值,下面的代码是选择器视图。
uilabel
答案 0 :(得分:1)
在didSelectRow上取一个数组并将选定的值添加到其中。
- (void)viewDidLoad {
[super viewDidLoad];
NSMutableArray *arr1=[[NSMutableArray alloc]init];
int index=-1;
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow: (NSInteger)row inComponent:(NSInteger)component
{
value = _countingarray[row];
index=index+1;
[arr1 insertObject:value atIndex:index ];
NSString *str = [arr1 valueForKeyPath:@"@sum.intValue"];//you will get the sum of all array objects
[self.mytableview reloadData];
[self hidePickerView];
}
并将此str值显示在tableview中。
答案 1 :(得分:0)
在PickerView中,DidSelect行方法只需重新加载您想要的单元格,而不是重新加载表格。
使用此方法重新加载
- (void)reloadRowsAtIndexPaths:(NSArray<NSIndexPath *> *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation NS_AVAILABLE_IOS(3_0);
并获取一个数组包含要在每个标签中为单元格设置的值。还要在pickerDidSelect之后更新该数组。
希望这能解决您的问题。