您的位置:  首页 > 技术杂谈 > 正文

ios 一个xib注册多个cell

2022-07-18 18:00 https://my.oschina.net/u/5142578/blog/5555450 osc_95332000 次阅读 条评论

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上, 如下图:

我们需要单独选中左边的每个cell,查看属性检查器通过属性检查器和cell某个控件关联,然后在拖拽为属性。如图:

展开阅读全文
  • 0
    感动
  • 0
    路过
  • 0
    高兴
  • 0
    难过
  • 0
    搞笑
  • 0
    无聊
  • 0
    愤怒
  • 0
    同情
热度排行
友情链接