셀을 "확인"한 속성을 파일에서 selectedArray 속성으로 정의했습니다. 셀을 표시 할 때 현재 셀 값이 selectedArray에 있는지 여부를 확인하고 표시되어있는 경우 UITableViewCellAccessoryCheckmark를 테이블의 액세서리보기로 표시합니다.UITableView 적절하게 새로 고치지 않음
유일한 문제는 사용자가 UISearchBar를 사용하여 UITableView를 검색 할 때 검색을 완료하면 테이블에 reloadData를 요청하고 numberofRows 메서드에서는 selectedArray에 올바른 양의 개체가 표시됩니다. 그러나 cellForRowatIndexPath 메서드는 selectedArray가 업데이트 된 적이없는 것처럼 이전 체크 표시를 계속 표시합니다.
아무도 도와 줄 수 있습니까? 내 코드는 다음과 같습니다.
NSArray *tempArray = [[NSArray alloc] init];
if(tableView == theTable) {
tempArray = [contactsArray objectAtIndex:indexPath.row];
} else {
tempArray = [searchfor_array objectAtIndex:indexPath.row];
}
NSString *cellValue = [tempArray objectAtIndex:0];
static NSString *CellIdentifier;
CellIdentifier = cellValue;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
UILabel *name = [[UILabel alloc] initWithFrame:CGRectMake(70, 30, 200, 20)];
name.text = [tempArray objectAtIndex:0];
name.backgroundColor = [UIColor clearColor];
[name setFont:[UIFont fontWithName:@"Helvetica-Bold" size:18]];
[cell.contentView addSubview:name];
[name release];
if([selectedArray containsObject:[tempArray objectAtIndex:0]]) {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
}
return cell;
[cell release];
[tempArray release];
[cellValue release];
내 답변에 공백을 채워 주셔서 감사합니다. – Justin