UITableView奇怪的渲染神器

时间:2012-12-29 08:27:16

标签: objective-c ios uitableview

我有UITableViewCells,后台是从cell.backgroundView属性加载的。当我重新加载单元格时滚动。任何滚动它们的尝试都会导致:

enter image description here

有人可以给我一个指向正在发生的事情的指针吗?我之前已经拥有它,并且正常滚动时不是问题。这只是在我重装时。

更新:这是我的细胞创建方法。

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
        static NSString *CellIdentifier = @"Cell";
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
        NSDictionary *singleCellData = [cellData objectAtIndex:indexPath.row];

        if (cell==nil) {
            cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        }
        BFNewsCell *cellView = [[BFNewsCell alloc]initWithFrame:self.tableView.bounds data:singleCellData indexpath:indexPath.row selected:NO];
        BFNewsCell *scellView = [[BFNewsCell alloc]initWithFrame:self.tableView.bounds data:singleCellData indexpath:indexPath.row selected:YES];

        [cellView drawRect:self.tableView.bounds];
        cell.backgroundView = cellView;
        cell.selectedBackgroundView = scellView;

        if (![cells objectForKey:[NSNumber numberWithInteger:indexPath.row]]) {
            [cells setObject:cell forKey:[NSNumber numberWithInteger:indexPath.row]];
        }

    //    NSLog(@"Set object %@", cells);
        return [cellView.cellHeight floatValue];

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    return [cells objectForKey:[NSNumber numberWithInteger:indexPath.row]];
}

0 个答案:

没有答案