UITableView reuseIdentifier:顶部和底部的重复元素

时间:2011-12-01 22:51:05

标签: iphone objective-c uitableview

我的UITableView顶部和底部单元格无论何时滚动并返回到屏幕上都会出现问题。我相信这是一个与reuseIdentifier有关的问题,但我不知道如何绕过它。 PlaceTableViewCell是Loren Britcher的ABTableViewCell的子类,用于快速滚动。

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

    static NSString *uniqueIdentifier = @"Cell";

    PlaceTableViewCell *cell = (PlaceTableViewCell *)[tableView dequeueReusableCellWithIdentifier:uniqueIdentifier];


    if(cell == nil){
       cell = [[PlaceTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:uniqueIdentifier];
    }

    Places *place = [self.placesArray objectAtIndex:[indexPath row]];    
    cell.place_title = place.title;
    cell.place_street = place.street;
    cell.place_thumb = place.thumb_path;


    return cell;

}

编辑:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return [self.placesArray count];
}

来自我的ABTableViewCell的子类:

- (void)drawContentView:(CGRect)r
{
    CGContextRef context = UIGraphicsGetCurrentContext();

    UIColor *backgroundColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0];
    UIColor *textColor = [UIColor blackColor];

    if(self.selected)
    {
        backgroundColor = [UIColor clearColor];
        textColor = [UIColor whiteColor];
    }

    [backgroundColor set];
    CGContextFillRect(context, r);

    CGPoint p;
    p.x = 42;
    p.y = 2;

        NSLog(@"place_thumb: %@", place_thumb);

        NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:place_thumb]];
        UIImage *image = [UIImage imageWithData:imageData];
        [image drawAtPoint: p];


        p.x = p.x + 50;

        [textColor set];
        [place_title drawAtPoint:p withFont:place_titleFont];

        p.y = 25;

        textColor = [UIColor lightGrayColor];
        [textColor set];
    [place_street drawAtPoint:p withFont:place_streetFont];

}

1 个答案:

答案 0 :(得分:0)

您的cellForRowAtIndexPath看起来是正确的。您需要为UITableView发布所有数据源方法。我预感到问题可能发生在numberOfRows方法中。

您是否根据数组大小设置行数? 另外,你确定你的阵列保持不变吗?