我想要dequeueReusableCellWithIdentifier:kCellIdentifier的一些精度。如果我了解得很好,那么下面的NSLOG应该只打印一次。但事实并非如此。那么dequeueReusableCell的意义是什么?它仅对自定义单元有效吗?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *kCellIdentifier = @"UITableViewCellStyleSubtitle3";


    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier];
    if (cell == nil)
    {
        NSLog(@"creation of the cell");
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:kCellIdentifier] autorelease];
    }

    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    cell.textLabel.text = [[self.table objectAtIndex:indexPath.row] objectForKey:kTitleKey];


    [cell setBackgroundColor:[UIColor colorWithWhite:1 alpha:0.6]];
    return cell;
}

最佳答案

开始在表格 View 上滚动,您应该看到不再显示日志消息。

如果您有一个高度为1000像素的表格 View ,并且每个单元格的高度为100像素,您将看到11次日志消息。
因为11是同时可见的最大单元数。
它是11,而不是10,因为当您向下滚动一点时,将有9个完全可见的单元格和2个仅部分可见的单元格。

关于iphone - 如何使queueReusableCellWithIdentifier出队列: work?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6745114/

10-13 06:58