Ios 如何实现自定义表视图单元格?
我正在尝试将tableview中的单元格从通用更改为自定义,并创建了一个新的tableview单元格类。但是,我无法使单元格识别新的自定义单元格。相反,它仍然显示通用单元格,尽管我在identify inspector中将storyboard中的设置更改为custom,并将tableview单元格的类更改为新的custom。我还将storyboard中单元格中的元素连接到新的自定义类Ios 如何实现自定义表视图单元格?,ios,objective-c,uitableview,custom-cell,Ios,Objective C,Uitableview,Custom Cell,我正在尝试将tableview中的单元格从通用更改为自定义,并创建了一个新的tableview单元格类。但是,我无法使单元格识别新的自定义单元格。相反,它仍然显示通用单元格,尽管我在identify inspector中将storyboard中的设置更改为custom,并将tableview单元格的类更改为新的custom。我还将storyboard中单元格中的元素连接到新的自定义类 tableView.registerNib(UINib(nibName: "YourUITableViewCel
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
我的理解是,tableview VC通过tableview CellForRowatineXpath
方法知道要使用哪个类,我也用下面的代码更改了这一点。项目已编译,但继续显示旧的通用单元格。有人能看到错误或建议做什么吗
#import "customCell.h"
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
customCell *cell = (customCell *)[self.tableView dequeueReusableCellWithIdentifier:@"Cell"];
Items *item = [self.fetchedResultsController objectAtIndexPath:indexPath];
return cell;
}
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
提前感谢您的建议
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
编辑:
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
通过拖动uielements,可以在tableview顶部的故事板中创建自定义单元。也许这是一个问题:
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
单元格样式设置为“自定义”:
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
您需要创建新的UITableViewCell并启用“创建XIB文件…”。
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
在XIB中创建自定义单元格,并将其自定义类设置为刚创建的类
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
然后在tableView-cellforrowatinexpath
中注册Nib:(在swift中,但我打赌您可以计算出目标c并行…)
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
然后访问您的手机:
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
var cell = tableView.dequeueReusableCellWithIdentifier("YourCustomIdentifierFromTheCustomClass")
就这样。您需要创建新的UITableViewCell并启用“创建XIB文件…”。
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
在XIB中创建自定义单元格,并将其自定义类设置为刚创建的类
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
然后在tableView-cellforrowatinexpath
中注册Nib:(在swift中,但我打赌您可以计算出目标c并行…)
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
然后访问您的手机:
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
var cell = tableView.dequeueReusableCellWithIdentifier("YourCustomIdentifierFromTheCustomClass")
就这样。选择故事板上的单元格,并在此字段中输入类的名称
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
当您将它从标识符中移出队列时,它将是该类的一个实例
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
选择故事板上的单元格,并在此字段中输入类的名称
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
当您将它从标识符中移出队列时,它将是该类的一个实例
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
创建自定义单元格时,必须执行以下操作:
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
创建自定义单元格时,必须执行以下操作:
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
通过拖动单元视图,可以在主故事板中创建自定义单元
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
为该原型创建自定义类
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
在标识符检查器中提及类名
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
将该类导入视图控制器.h文件
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
并将您的自定义从主故事板连接到自定义class.h文件
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
它起作用了 通过拖动单元视图,可以在主故事板中创建自定义单元
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
为该原型创建自定义类
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
在标识符检查器中提及类名
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
将该类导入视图控制器.h文件
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
并将您的自定义从主故事板连接到自定义class.h文件
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
它起作用了 请注意,每个常规tableViewCell都有一个内置和隐藏的UIImageView
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
在Objective-C中,您只需在您的单元格中执行此操作即可
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
cell.imageView.image = [UIImage imageNamed:@"My awesome image"];
在斯威夫特,这是非常接近
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
cell.imageView?.image = UIImage(named: "My awesome image")
请注意,每个常规tableViewCell都有一个内置和隐藏的UIImageView
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
在Objective-C中,您只需在您的单元格中执行此操作即可
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
cell.imageView.image = [UIImage imageNamed:@"My awesome image"];
在斯威夫特,这是非常接近
tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
cell.imageView?.image = UIImage(named: "My awesome image")
您是否在情节提要中也将单元标识符指定为单元?是的,它以前是单元,现在仍然是单元。这似乎是它仍然显示通用单元格的方式。您可以发布自定义单元格xib的屏幕截图吗?若你们并没有使用xib,你们是如何设计自定义单元格的?在故事板中并没有什么比自定义更好的了。它要么是静态单元,要么是动态原型。您能否提供如何将其设置为自定义的屏幕截图?以前,它显示通用单元格和新自定义单元格,但显示自定义单元格的“标签”一词,而不是实际数据。我设法阻止它显示旧数据。这是因为源文件中还有一个configureCell方法。因此,它现在显示单词标签。您是否在故事板中将单元标识符也指定为单元?是的,它以前是单元,现在仍然是单元。这似乎是它仍然显示通用单元格的方式。您可以发布自定义单元格xib的屏幕截图吗?如果不使用xib,如何设计自定义单元格