嗨,我有一个 UITableView,我正在向其中动态插入包含 UIStepper 和 UILabel 的单元格。UILabel 显示了 UIStepper 的值。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
if(!cell)
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];
[cell.textLabel setText:[self.myarray objectAtIndex:indexPath.row]];
UIStepper *stepper = [[UIStepper alloc]init];
UILabel *label = [[UILabel alloc]init];
label.text = [NSString stringWithFormat:@"%.f", stepper.value];
[cell addSubview:stepper];
[cell addSubview:label];
[stepper addTarget:self action:@selector(incrementStepper:) forControlEvents:UIControlEventValueChanged];
return cell;
}
为了清楚起见,我已经删除了上面一些进行格式化的行,但这行得通,一切都很好。
-(void)incrementSkillStepper:(id)sender
{
UIStepper *stepper = (UIStepper*)sender;
//set the label that is in the same cell as the stepper with index stepper.value.
}
当我单击特定单元格中的步进器时,我希望同一单元格中的标签增加,但我的问题是 addtarget 的工作方式 - 我只能发送发送者,在这种情况下,发送者是事件的步进器,这意味着它无权访问动态创建的标签。有人知道我如何从 incrementStepper 委托方法中设置标签的文本吗?