gpt4 book ai didi

ios - 了解 dequeueReusableCellWithIdentifier

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:26:10 25 4
gpt4 key购买 nike

我对 dequeueReusableCellWithIdentifier 方法的使用及其工作原理有点困惑。我目前有一个 searchBar 和两个可变数组(比如 filteredTableDatatableData)。现在我才意识到无论我做什么 cell 总是返回 nil。我的 UITableView 也有一个过滤器功能(使用不同的数组),但它似乎总是返回 nil。我的问题是 dequeueReusableCellWithIdentifier 什么时候返回一些东西?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"SimpleTableItem";
MMTableCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

if (cell == nil) {

NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"MMTableCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
cell.RowNo = indexPath.row;
cell.ImageAlbum.image = [self getMP3Pic:indexPath.row];
cell.table = self.tableViewObject;
}



NSString* sng = isFiltered ? [self.filteredTableData objectAtIndex:indexPath.row] : [self.tableData objectAtIndex:indexPath.row] ;

cell.labelSongName.text = [NSString stringWithFormat:@"%@", sng ];
return cell;

最佳答案

这实际上是对显示UITableView的优化。想象一下,您有 1,000 个数据要显示,创建 1,000 个 UITableViewCell 来托管您的每个数据没有任何意义。因此,我们使用一种称为可重用性的方法,即只使用一定数量的单元格。滚动时,它实际上并不是释放不可见的单元格并创建新单元格。它只是移动现有的单元格。

标识符仅用于根据您的需要识别不同的单元格。我可能在一个 UITableView 中使用了多个单元格原型(prototype)。

对于您的问题,您需要在界面生成器 中设置原型(prototype)单元。在编程方式中,如果我们无法使用 dequeueReusableCellWithIdentifier 方法找到单元格,那么我们创建。但是,您可以利用 Interface Builder,它总是会返回单元格。

关于ios - 了解 dequeueReusableCellWithIdentifier,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30043895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com