[self.tableView registerNib:[UINib nibWithNibName:@"NewTaskCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:NewTaskCellId];
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NewTaskCell *cell = [self.tableView dequeueReusableCellWithIdentifier:NewTaskCellId forIndexPath:indexPath];
if (!cell) {
cell = [[NewTaskCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NewTaskCellId];
}
if (self.taskList.count > indexPath.row) {
FindDisOrderInfoEntity *entity = [self.taskList objectAtIndex:indexPath.row];
[cell setCellContentWith:entity];
}
return cell;
}
迷茫2017-04-18 09:59:24
Remove if (self.taskList.count > indexPath.row)
셀 일반 할당
셀이 늘어나면 테이블 새로고침 또는 새 행 새로고침
高洛峰2017-04-18 09:59:24
(UITableViewCell )tableView:(UITableView )tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 프록시 메소드에 다음을 작성하세요.
으아악PHP中文网2017-04-18 09:59:24
셀 재사용, 재사용은 셀의 UIButton
및 UILabel
과 같은 이전 상태입니다. 재사용 전 UIButton
에서 UILabel
이 강조 표시된 상태인 경우 재사용 후는 text=@"label"
입니다. 여전히 강조표시되어 있으면 UIButton
의 UILabel
은 여전히 text
이고, label
이 재사용되면 cell
메서드가 호출됩니다. 따라서 cellForRow
에서는 일반적으로 값과 상태를 재할당하고 변경합니다. 따라서 셀에는 cellForRow
라는 기본 규칙이 있습니다. 그렇지 않으면 셀이 혼란스러워질 것입니다. 如果有if 那一定要有else
PHP中文网2017-04-18 09:59:24
등록 후 셀이 비어 있는지 판단할 필요는 없지만, 왜 카운트를 판단해야 하는지 이해가 되지 않습니다. 그러나 그것은 아마도 당신의 문제가 아닐 것입니다. "내용의 중복"이 셀의 컨트롤이 반복적으로 추가된다는 것을 의미한다면 이는 [cell setCellContentWith:entity]이어야 합니다. 여기에서 컨트롤을 생성하고 추가하면 데이터만 새로 고칠 수 있습니다. 즉, 할당 프로세스만 컨트롤을 생성하지 않습니다.
迷茫2017-04-18 09:59:24
테이블뷰는 많이 표시되지 않습니다. 재사용하지 않으면 반복되지 않습니다. 또한, RegisterNib 메소드를 호출한 후에는 메모리가 항상 순수 CELL입니다.