当 uitableview 滚动时,展开的单元格被打乱,整个表格单元格被打乱和重叠。为什么会发生这种情况,我该如何设置。请指导,提前致谢。
这是代码:
-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell;
if(tableView == self.mTableView)
{
cell = [self.mTableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
}
if(tableView == self.mMenuTableView)
{
cell = [self.mMenuTableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
if(indexPath.section == 0)
{
if(!isShowingList)
{
cell.backgroundView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"event_exp.png"]];
}
else
{
if(indexPath.row == 0)
{
cell.backgroundView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"event_exp_active.png"]];
}
if(indexPath.row == 1)
{
cell.textLabel.text = [self.mArrSubMenuEvent objectAtIndex:0];
cell.backgroundColor = [UIColor colorWithRed:56.0/255.0 green:218.0/255.0 blue:250.0/255.0 alpha:1.0];
}
if(indexPath.row == 2)
{
cell.textLabel.text = [self.mArrSubMenuEvent objectAtIndex:1];
}
if(indexPath.row == 3)
{
cell.textLabel.text = [self.mArrSubMenuEvent objectAtIndex:2];
}
}
}
if(indexPath.section == 1)
{
if(!isOverhead)
{
cell.backgroundView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"overhead_exp.png"]];
}
else
{
if(indexPath.row == 0)
{
cell.backgroundView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"overhead_exp_active.png"]];
}
if(indexPath.row == 1)
{
cell.textLabel.text = @"Friend";
}
if(indexPath.row == 2)
{
cell.textLabel.text = @"Public";
}
}
}
if(indexPath.section == 2)
{
NSString *imgName = [self.mArrCellImages objectAtIndex:indexPath.row];
cell.backgroundView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:imgName]];
}
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
}