我在我的單元格中有一個編輯文本,當我向上滾動或向下滾動時,它將第一個單元格的值設置爲最後一個單元格和第二個最後一個單元格。我認爲這是因爲它使小區出隊,但我無法解決這個問題。這裏是我的單元代碼:iOS:在dequeueReusableCellWithIdentifier上的UItableview重複值
-(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;
}
這截屏是用正確的值:
在這種PIC 4是自動分配不正確的值,這個值也是不陣列。
你有這樣的情況,你不(重新)設置標籤的文字。使用調試器追蹤並找到它。或者使用'NSLog()'語句,因爲斷點與時間混亂,特別是在滾動時。 – Avi
我已經使用了NSLog()和檢查數組值,數組有正確的值,但當我向上/向下滾動或重新加載表視圖時,它設置了錯誤的值(數組有正確的值)。 –