不可见的UITableViewCell子视图未正确绘制

时间:2013-02-20 07:03:39

标签: ios ipad cocoa-touch uitableview

我有一个占据整个屏幕的UITableView,每个UITableViewCell都有超过表格宽度的UILable数量,所以我改变了它的内容大小以适应整个子视图。

问题是当我水平滚动查看它们时没有正确绘制在视图加载时不可见的子视图,没有背景颜色和没有分隔符,甚至在点击时也没有出现选择行。

此图片解释了所有:

image describes the problem

我如何解决这个问题?

BTW:没有可重复使用的细胞。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell* cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];//[tableView dequeueReusableCellWithIdentifier:CellIdentifier];



    float startPoint = 0;

    if ([_delegate billsArray].count>indexPath.row)
    {
        for (int j=0; j<_rowCells.count; j++)
        {
            NSDictionary* cellInfo = [[NSDictionary alloc]initWithDictionary:[_rowCells objectAtIndex:j]];

            float width = [[cellInfo valueForKey:@"width"]floatValue];
            float height = [[cellInfo valueForKey:@"height"]floatValue];
            CGRect frame = CGRectMake(startPoint, 0, width, height);
            startPoint = startPoint+width+5;

            UILabel* label = [[UILabel alloc]initWithFrame:frame];
            label.text = [[[_delegate billsArray]objectAtIndex:indexPath.row]valueForKey:[cellInfo valueForKey:@"CellID"]];
            label.textColor = [UIColor blackColor];

            if ([cellInfo valueForKey:@"alignment"]!=nil)
                label.textAlignment = [[cellInfo objectForKey:@"alignment"]integerValue];
            else
                label.textAlignment = NSTextAlignmentCenter;
            label.userInteractionEnabled = NO;
            [cell addSubview:label];
        }
    }


    return cell;
}

0 个答案:

没有答案