gpt4 book ai didi

ios - 同一个 XIB 中有多个自定义单元格

转载 作者:可可西里 更新时间:2023-11-01 04:42:23 24 4
gpt4 key购买 nike

是否可以在同一个 xib 中拥有多个自定义 uitableviewCell?

我试图通过在同一个 xib 中组合不同的自定义单元格,然后让表格从中加载不同的单元格来保存 XIB 文件。

在 IB 中,我尝试将每个 uiTableViewCell 类设置为不同的自定义类 .m/.h 实现。这是我尝试过的:

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

static NSString *cellIdentifier = @"DevConfigCell";

DeviceInfoCell *cell = (DeviceInfoCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];

if(cell == nil)
{

NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustomTableViewCell~iphone" owner:self options:nil];
cell = ( DeviceInfoCell *)[nib objectAtIndex:0];

}

return cell;
}

在另一个表中,我会重复使用 Nib ,但我会这样做:

    cell = ( SecondDeviceInfoCell *)[nib objectAtIndex:0];

出于某种原因,它总是加载第一个单元格。

这一切都应该有效吗?或者有什么办法吗?

谢谢

最佳答案

I'm trying to save XIB files by combining different customized cells within the same xib

为什么?您可以创建的 .xib 文件的数量没有限制。

and then having the Table load different ones from it.

当您加载 .xib 时,所有 文件包含的对象都会被创建。如果将 10 个自定义单元格放在一个 .xib 中,则加载该 .xib 将为这 10 个单元格中的每一个创建一个实例。那可能不是你想要的。将您的单元格保存在单独的 .xibs 中可能是一个更好的计划。

cell = ( SecondDeviceInfoCell *)[nib objectAtIndex:0];

您似乎对转换的作用感到困惑。当您从一种类型转换为另一种类型时,您不会以某种方式选择不同的对象。如果 nib 数组具有相同的内容,则 [nib objectAtIndex:0] 返回的对象将始终相同。转换只是改变编译器与值相关联的类型;在这种情况下,它会更改指针的类型。

您可以在 View Controller 中创建一个 IBOutletCollection,然后将几个不同的自定义单元格连接到该 socket 集合;这将为您提供一组单元格,您可以使用 objectAtIndex: 从中进行选择。但同样,这确实不是一个好主意,因为每次您只需要一个单元格时,您将创建文件中的所有单元格。

关于ios - 同一个 XIB 中有多个自定义单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12201204/

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