ios 一个xib添加多个cell

ios 一个xib注册多个cell

一、创建多个Cell

初次使用xib创建UITableviewCell的时候,我都是一个xib文件里,只创建一个Cell,在实际业务中,往往都是一个列表中需要用到多个不同的Cell样式,这就需要创建N个.h .m .xib文件。而且这些.m中的实现还差不多

1、在一个xib中创建多个Cell

先和普通创建xibCell一样,在xib中选中左边那个Cell,copy(command + c)或者在拖一个UITableViewCell上去,然后paste(command + v),.xib中就多个Cell了。

2、设置Restoration ID

为每个Cell 设置一个唯一的 Restoration ID,

二、使用

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    //在重用队列中 找到正确的Cell 重复使用Cell
    SpotStrategyParamCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CirculationOptionalID"];
    if (!cell) {
        // 从 mainBundle 中加载资源
        cell = [[[NSBundle mainBundle] loadNibNamed:@"SpotStrategyParamCell" owner:self options:nil] objectAtIndex:2];
     }
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    return cell;
}

三、属性问题

新拖进来三个cell上面放好控件添加过约束后,开始拖拽控制为属性,可是每次关联的都是第一个cell,最后检查发现是因为新的几个cell是从控件库中拖拽进去的没有和某个类关联,也就是相当于是一个空的cell跟那个都无关,所以无论怎么拖拽都是关联的第一个cell。

  1. 点击cell查看属性检查器通过属性检查器和cell某个控件关联,然后在拖拽为属性。
  2. 提前在.h文件中定义好属性,直接和控件关联,如果有多个cell会有选择关联某个cell选项。

注意⚠️:关联属性的时候,你想关联那个Cell上的属性,需要先点击左边Cell列表,选中该Cell,然后再拖线关联上面的控件。

使用拖拽到.m文件关联的方式所有属性会关联到第一个cell上, 如下图:
ios 一个xib添加多个cell_第1张图片

我们需要单独选中左边的每个cell,查看属性检查器通过属性检查器和cell某个控件关联,然后在拖拽为属性。如图:
ios 一个xib添加多个cell_第2张图片

你可能感兴趣的:(iosobjective-c)