Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何实现自定义表视图单元格?_Ios_Objective C_Uitableview_Custom Cell - Fatal编程技术网

Ios 如何实现自定义表视图单元格?

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中的单元格从通用更改为自定义,并创建了一个新的tableview单元格类。但是,我无法使单元格识别新的自定义单元格。相反,它仍然显示通用单元格,尽管我在identify inspector中将storyboard中的设置更改为custom,并将tableview单元格的类更改为新的custom。我还将storyboard中单元格中的元素连接到新的自定义类

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")
    
  • 创建自定义单元类(从 UITableViewCell)(CustomCell.h和.m),CustomCell.h具有所有 属性,如标签、图像等,并将它们全部合成 在执行中

    tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
    
  • 创建此自定义类后,返回故事板,选择 自定义单元格,将其类更改为CustomCell并为其提供一些 标识符,如“MyCustomCell”,然后右键单击自定义单元格 并用标签等连接IB插座

    tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
    
  • 现在在您要实现的类中导入CustomCell类 UITableView并使用在CustomCell中定义的属性 班级

    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)(CustomCell.h和.m),CustomCell.h具有所有 属性,如标签、图像等,并将它们全部合成 在执行中

    tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
    
  • 创建此自定义类后,返回故事板,选择 自定义单元格,将其类更改为CustomCell并为其提供一些 标识符,如“MyCustomCell”,然后右键单击自定义单元格 并用标签等连接IB插座

    tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass")
    
  • 现在在您要实现的类中导入CustomCell类 UITableView并使用在CustomCell中定义的属性 班级

    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,如何设计自定义单元格