IOS的TableViewCell会重叠的问题

皮总 发布于 2013/01/22 11:29
阅读 8K+
收藏 1

1. 如上图一个 UITableView 被重复插入两个图, 请看代码


- (UITableViewCell *)tableView:(UITableView *)tableview cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *TableSampleIdentifier = @"TableSampleIdentifier";
    UITableViewCell *cell = [tableview dequeueReusableCellWithIdentifier:TableSampleIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:TableSampleIdentifier];
    }
    cell.selectionStyle = UITableViewCellSeparatorStyleNone;
    
    NSUInteger row = [indexPath row];
    NSUInteger section = [indexPath section];

    horizontalLinesProperties=nil;
    anchorPropertiesArray=nil;
    yValuesArray = nil;
    xValuesArray = nil;
    xTitlesArray = nil;
    xProperty = nil;
    yProperty = nil;
    verticalLinesProperties = nil;
    
    NSArray *line1 = [[NSArray alloc]initWithObjects:
                      @"10000",@"21000",@"24000",@"11000",@"5000",@"2000",@"9000",@"4000",@"10000",@"17000",@"15000",@"11000",nil];
    NSArray *line2 = [[NSArray alloc]initWithObjects:
                      @"Jan",@"Feb",@"Mar",@"Apr",@"May",@"Jun",@"Jul",@"Aug",@"Sep",@"Oct",@"Nov", @"Dec",nil];
    
    horizontalLinesProperties=[NSDictionary dictionaryWithObjectsAndKeys:@"1,2",@"dotted", nil];
    verticalLinesProperties=[NSDictionary dictionaryWithObjectsAndKeys:@"1,2",@"dotted", nil];
    
    yValuesArray = line1;
    xValuesArray = line2;
    xTitlesArray = line2;
    
    mLineGraph=[[MIMLineGraph alloc]initWithFrame:CGRectMake(5, 5, 310, 150)];
    mLineGraph.delegate=self;
    
    mLineGraph.titleLabel.text = nil;
    
    mLineGraph.mbackgroundColor=[MIMColorClass colorWithComponent:@"1,1,1"];
    mLineGraph.anchorTypeArray=[NSArray arrayWithObjects:[NSNumber numberWithInt:NONE], nil];
    MIMColorClass *c1=[MIMColorClass colorWithComponent:@"0,169,249"];
    mLineGraph.lineColorArray=[NSArray arrayWithObjects:c1, nil];
    mLineGraph.xTitleStyle=X_TITLES_STYLE1;
    
    mLineGraph.leftMargin = -15;
    mLineGraph.rightMargin = 6;
    mLineGraph.topMargin = 10;
    mLineGraph.bottomMargin= -60;
    
    [mLineGraph drawMIMLineGraph];

    switch (section)
    {
        case 0:
            [cell.contentView addSubview:mLineGraph];
            break;
            
        case 2:
            [cell.contentView addSubview:mWallGraph];
            break;
            
        default:
            break;
    }
    return cell;
}
上面代码省掉了一段, 与那个 mLineGraph 差不多的
mWallGraph

上面的图很明显被插入了两张图, 我通过 NSlog来打印 log 发现执行得并没有错误, 但是同一个 Cell 被插入两张图, 不知为何? 求解

加载中
0
皮总
皮总
擦, 像这样就可以了!  啥玩意 
static NSString *TableSampleIdentifier = @"TableSampleIdentifier";
    UITableViewCell *cell = [tableview dequeueReusableCellWithIdentifier:TableSampleIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"myCell"];
    }
0
dake
dake
没看出来有两张图...解释一下..
皮总
皮总
看坐标轴啊, 有一个图在背面
0
dake
dake
不过问题可以出在cell的复用上...因为cell.contentView addSubview 的关系 ..所以用过的cell还会继续保持上一次add的图.......你懂的.....于是就重复了
皮总
皮总
那我该怎么办呢 ?
0
ajavaloser
ajavaloser
皮总的分本来就不好拿,结果丫还把自己的问题给答了
皮总
皮总
回复 @wwwmmm : 擦, 还能这样
wwwmmm
wwwmmm
回复 @皮总 : 我举报了 洗积分
皮总
皮总
我的分向来好拿啊!
0
noday
noday

引用来自“皮总”的答案

擦, 像这样就可以了!  啥玩意 
static NSString *TableSampleIdentifier = @"TableSampleIdentifier";
    UITableViewCell *cell = [tableview dequeueReusableCellWithIdentifier:TableSampleIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"myCell"];
    }
我是没懂,答案如上
0
dake
dake
没分....我去..
0
blindcat
blindcat
我要积分,我不答题
返回顶部
顶部