自分のセルにedittextがあります。スクロールアップまたはスクロールすると、最初のセルの値が最後のセルと2番目の最後のセルに設定されます。私はそれがセルをデキューするためだと思うが、私はこの問題を解決することができない。ここでは、セルのための私のコードは次のとおりです。iOS:UItableview dequeueReusableCellWithIdentifierの繰り返し値
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
_myTableView = tableView;
AddTaskTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"addTaskCell" forIndexPath:indexPath];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
AddTaskDetails *task =[self.tasksArray objectAtIndex:indexPath.row];
cell.addHours.delegate = self;
cell.taskDetails.text =task.taskName;
_hoursTextField = cell.addHours;
_hoursTextField.delegate = self;
cell.addHours.tag = indexPath.row;
cell.addDescriptionBtn.tag = indexPath.row;
[cell.addDescriptionBtn addTarget:self action:@selector(didTapAddDescButton:) forControlEvents:UIControlEventTouchUpInside];
[cell.addHours addTarget:self action:@selector(editStart:) forControlEvents:UIControlEventEditingDidBegin];
[cell.addHours addTarget:self action:@selector(editEnd:) forControlEvents:UIControlEventEditingDidEnd];
[cell.addHours addTarget:self
action:@selector(textFieldDidChange:)
forControlEvents:UIControlEventEditingChanged];
if(task.isTextRed)
{
cell.taskDetails.textColor = [UIColor colorWithRed:255 green:0 blue:0 alpha:1.0];
cell.addHours.textColor = [UIColor colorWithRed:255 green:0 blue:0 alpha:1.0];
}
else
{
cell.taskDetails.textColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:1.0];
cell.addHours.textColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:1.0];
}
if(task.isBillable)
{
cell.backgroundColor = [UIColor whiteColor];
}
else
{
cell.backgroundColor = [UIColor lightGrayColor];
}
AddTaskDetails *task_1 =[self.tasksArray objectAtIndex:indexPath.row];
if(task_1.hours>0)
{
NSString *hours = [[NSString alloc]initWithFormat:@"%d",task_1.hours];
cell.addHours.text = hours;
}
else
{
cell.addHours.placeholder = @"0";
}
NSString *hours = [[NSString alloc]initWithFormat:@"Total Hours: %ld",_totalHours];
if(_totalHours<=24)
{
_labelTotalHours.text = hours;
}
return cell;
}
このスクリーンショットは、正しい値である。この写真で
4本値もありませんが、自動的に割り当てられます間違った値であり、アレイ。
ただ、簡単な概要
あなたが設定されていません(再)んた場合を持つようにそれを設定しますラベルのテキスト。デバッガを使用してトレースし、見つけます。また、特にスクロール時に、タイミングを混乱させるブレークポイントとして 'NSLog()'ステートメントを使用してください。 – Avi
'NSLog()'を使用して配列の値をチェックしましたが、配列の値は正しいですが、上下にスクロールしたり、テーブルビューをリロードしたりすると誤った値が設定されます。 –