我在我的应用程序中创建了一个包含5个部分的TableView。
第1 - 4节每分钟只包含一行,第5节包含5行。
一切正常,直到我从屏幕上滚动TableView。在我的第一部分和行(单元格)中,我将accessoryView设置为UILabel,其中包含一些文本。
每个其他单元格都将公开按钮作为accessoryType。
当我滚动tableView时,我在第一个单元格中的文本以某种方式显示在最后一个单元格中??
我已经通过将NSStrings添加到数组中来设置我的数据,然后将它们作为字典添加到NSMutableArray。
这是我的手机设置:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
// UISwitch *aUISwitch = [[[UISwitch alloc]initWithFrame:CGRectZero]autorelease];
// Configure the cell.
NSDictionary *dictionary = [listOfSettings objectAtIndex:indexPath.section];
NSArray *array = [dictionary objectForKey:@"Settings"];
NSString *cellValue = [array objectAtIndex:indexPath.row];
cell.textLabel.text = cellValue;
if([cellValue isEqualToString:@"Status"]){
UILabel *viewLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 100, 20)];
[viewLabel setText:@"Connected"];
cell.accessoryView = viewLabel;
[viewLabel release];
}
else{
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
}
return cell;
}
我知道细胞在离开屏幕时会被删除/删除,所以我认为这与它有关吗?处理屏幕上重新出现的细胞的推荐做法是什么?
答案 0 :(得分:1)
快速浏览一下......在else语句中,您不仅需要设置cell.accessoryType,还要设置cell.accessoryView = nil;
当细胞被回收时,accesoryView仍然存在。