iStepper覆盖iOS中自定义单元格中的UILabel值
我有一个iStepper覆盖iOS中自定义单元格中的UILabel值,ios,uitableview,label,uistepper,Ios,Uitableview,Label,Uistepper,我有一个UITableViewController,它由一个TableView和一个UILabel组成UITableViewSource通过自定义UITableViewCell将数据提供给TableViewUITableViewCell由一个可添加项目的步进器组成,标签保存该值 当用户点击步进器时,我想更新UIViewController中的UILabel,而我似乎无法让它工作 非常感谢任何帮助/提示!这是我的测试项目中的示例代码,有一堆未使用的代码,但这只是一个测试,所以我让它存在 谢谢 代码
UITableViewController
,它由一个TableView
和一个UILabel
组成UITableViewSource
通过自定义UITableViewCell将数据提供给TableView
UITableViewCell
由一个可添加项目的步进器组成,标签保存该值
当用户点击步进器时,我想更新UIViewController
中的UILabel
,而我似乎无法让它工作
非常感谢任何帮助/提示!这是我的测试项目中的示例代码,有一堆未使用的代码,但这只是一个测试,所以我让它存在
谢谢
代码是
我的自定义单元格类是“StepperDetailsCell”
pragma标记-步进动作法
-(void)stepperValuechanges:(UIStepper *)sender{
CGPoint stepperPosition = [sender convertPoint:CGPointZero toView:self.tableView];
indexPath1 = [self.tableView indexPathForRowAtPoint:stepperPosition];
if (indexPath1 != nil )
{
float val = sender.value;
valueInt = (int)val;
[self.quantityArr replaceObjectAtIndex:indexPath1.row withObject:[NSString stringWithFormat:@"%i",valueInt]];
NSLog(@"%@",self.quantityMDict);
}
[self.tableView reloadData];
}
在这里,一切都正常工作,但每当从tableview底部加载新的单元格时,新的单元格步进器就会充当消失的单元格步进器。最后,3天后,我解决了我的问题 只需在将UIStepper对象的操作触发到相应的控制器对象之前设置UIStepper的值,如下所示 -(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{
static NSString *simpleTableIdentifier = @"Cell";
cell = (StepperDetailsCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil){
cell = (StepperDetailsCell *)[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
}
[cell.imagegroceries setImage:[UIImage imageNamed:[[self.didSelectedImages sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)]objectAtIndex:indexPath.row]]];
//我只是将前一个值(这个值,取自名为“quantityArr”的数组)设置为相应的stepper,然后从stepper对象向controller对象启动操作。就是这样
[cell.objstepper setValue:[[self.quantityArr objectAtIndex:indexPath.row] doubleValue]];
[cell.objstepper addTarget:self action:@selector(stepperValuechanges:) forControlEvents:UIControlEventValueChanged];
cell.lblsteppervalue.text = [self.quantityArr objectAtIndex:indexPath.row];
return cell;
}三天后,我终于解决了我的问题 只需在将UIStepper对象的操作触发到相应的控制器对象之前设置UIStepper的值,如下所示 -(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{
static NSString *simpleTableIdentifier = @"Cell";
cell = (StepperDetailsCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil){
cell = (StepperDetailsCell *)[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
}
[cell.imagegroceries setImage:[UIImage imageNamed:[[self.didSelectedImages sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)]objectAtIndex:indexPath.row]]];
//我只是将前一个值(这个值,取自名为“quantityArr”的数组)设置为相应的stepper,然后从stepper对象向controller对象启动操作。就是这样
[cell.objstepper setValue:[[self.quantityArr objectAtIndex:indexPath.row] doubleValue]];
[cell.objstepper addTarget:self action:@selector(stepperValuechanges:) forControlEvents:UIControlEventValueChanged];
cell.lblsteppervalue.text = [self.quantityArr objectAtIndex:indexPath.row];
return cell;
}您的问题中没有代码。@Nitin Gohel,现在我添加了我的代码。您的问题中没有代码。@Nitin Gohel,现在我添加了我的代码