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。
-
点击cell查看属性检查器通过属性检查器和cell某个控件关联,然后在拖拽为属性。
-
提前在.h文件中定义好属性,直接和控件关联,如果有多个cell会有选择关联某个cell选项。
注意⚠️:关联属性的时候,你想关联那个Cell上的属性,需要先点击左边Cell列表,选中该Cell,然后再拖线关联上面的控件。
使用拖拽到.m文件关联的方式所有属性会关联到第一个cell上, 如下图:
我们需要单独选中左边的每个cell,查看属性检查器通过属性检查器和cell某个控件关联,然后在拖拽为属性。如图: