我有一個UIStepper
控制,我編程創建在我的UITableViewCell
。我還爲該單元編程創建了一個UILabel
。最近發生的事情是,步進器按下時正在訪問位於不同單元中的UILabel
,即索引路徑1而不是0.這裏是代碼。UIStepper不更新相應的標籤
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
...
//---------UIStepper Creation-------------------//
stepper = [[UIStepper alloc]init];
[stepper setFrame:CGRectMake(220.0f, 65.0f, 0.0f, 0.0f)];
[stepper setTag: indexPath.row];
[stepper addTarget:self action:@selector(stepperPressed:) forControlEvents:UIControlEventValueChanged];
stepperLabel = [[UILabel alloc] init];
[stepperLabel setFrame:CGRectMake(105,70, 20, 20)];
[stepperLabel setTextColor:[UIColor whiteColor]];
[stepperLabel setBackgroundColor:[UIColor clearColor]];
[stepperLabel setTag:stepper.tag];
[stepperLabel setText:[NSString stringWithFormat: @"%d", (int) [stepper value]]];
stepperLabel.lineBreakMode = UILineBreakModeWordWrap;
stepperLabel.numberOfLines = 1;//Dynamic
//Set min and max
[stepper setMinimumValue:0];
[stepper setMaximumValue:4];
// Value wraps around from minimum to maximum
[stepper setWraps:YES];
[stepper setContinuous:NO];
// To change the increment value for each step
...
[cell addSubview:stepperLabel];
[cell addSubview:stepper];
return cell;
這裏是我需要進行
-(void) stepperPressed:(UIStepper *)sender{
NSIndexPath *indexPath = [self.tableView indexPathForCell:(UITableViewCell *)[sender superview]];
int row = indexPath.row;
NSLog(@"stepper is in row %d",row);
NSLog(@"stepperLabel is in row %d",stepperLabel.tag);
double value = [sender value];
if(sender.tag ==row){
[stepperLabel setText:[NSString stringWithFormat: @"%d", (int) value]];
}
}
行動嚴重需要一些幫助球員
那麼發生了什麼?是'stepperPressed:'執行? 'sender.tag == row'是否真的如此?你記錄什麼會告訴你? –
步進器按下正在執行,但條件語句不正確工作它有時工作。 – KING