gpt4 book ai didi

ios - 如何在 ios 中使用 UI NIB 而不是 loadNibNamed 自定义 UI 表格 View 单元格?

转载 作者:行者123 更新时间:2023-12-01 18:57:15 25 4
gpt4 key购买 nike

我正在制作一个自定义 ui 表格 View 单元格。我知道我可以使用 loadNibNamed使用方法.xib的单元格,但是当我的数据太多时,这会导致滚动变慢。

我想使用 UI nib,因为它比 loadNibNamed 快得多加载自定义单元格的方法.xib文件 。

static NSString *cellIdentifier = @"PostStreamCell";

PostStreamCell *cell= [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"PostStreamCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
UINib *cellNib = [UINib nibWithNibName:@"MemberCell" bundle:nil];
[cell.collectionView registerNib:cellNib forCellWithReuseIdentifier:@"MemberCell"];
}

cell.textlabel.text =@"xyzabc123";

我尝试在上面的“if” block 中使用下面的代码,但未能使用它。任何帮助,将不胜感激。
UINib *cellNib = [UINib nibWithNibName:@"PostStreamCell" bundle:nil];      
[cell registerNib:cellNib forCellWithReuseIdentifier:@"PostStreamCell"];

最佳答案

  • 使用 UITableViewCell 作为顶级对象创建您的 xib 文件。这称为 Cell.xib
  • 根据这个文件创建一个UINib对象
  • 将 UINib 注册到 TableView (通常在 TableView Controller 子类的 viewDidLoad 中)。

  • 在 viewDidLoad 中使用以下行:
    [self.tableView registerNib:[UINib nibWithNibName:@"Cell" bundle:nil] forCellReuseIdentifier:@"Cell"];

    然后,在 cellForRowAtIndexPath 中,如果您想要 nib 中的一个单元格,则将其出列:
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];

    这要么从 nib 创建一个新实例,要么使现有单元出队。

    关于ios - 如何在 ios 中使用 UI NIB 而不是 loadNibNamed 自定义 UI 表格 View 单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25946539/

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