2015-10-07 97 views
-1

我试图在tableview中的细胞从通用更改为自定义,并创建了一个新的tableview细胞类。但是,我无法让单元格识别新的自定义单元格。相反,它仍然显示一般小区虽然我在故事板改变了设置自定义的识别检查,并也改变了类的实现代码如下小区到新的自定义一个。我还将故事板中单元格中的元素连接到新的自定义类。如何实现自定义单元格

我的理解是实现代码如下VC知道从tableView cellForRowAtIndexPath方法使用的类,并且也与下面的代码我已经改变了。该项目编译,但继续显示旧的通用单元格。任何人都可以看到错误或建议还有什么要做?

#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的顶部情节串连图板通过拖动UI元素创建。也许这就是问题:

enter image description here

电池的样式设置为自定义:

enter image description here

+0

您是否也在故事板中给出了Cell的单元标识符? –

+0

是的,它之前是Cell,它仍然是Cell。这似乎是它仍然显示通用单元格的方式。 – user1904273

+0

你可以发布你的自定义单元格xib的截图吗?如果你不使用xib,你如何设计定制单元? –

回答

2

您需要创建新的UITableViewCell,并启用 “创建XIB文件...”。 在XIB创建自定义的细胞,使这就像你的类,你刚刚创建自定义类。

然后在tableView cellForRowAtIndexPath注册笔尖:(它在迅速的,但我敢打赌,你可以计算出C语言进行并行目标...)

tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass") 

然后访问您的细胞:

var cell = tableView.dequeueReusableCellWithIdentifier("YourCustomIdentifierFromTheCustomClass") 

和而已。

+0

您不需要使用XIB,您可以从Storyboard中执行此操作。 – EmilioPelaez

+0

我想你是对的。这就是我如何让故事板中的UITableViewController更清晰一些。然后当我需要访问单元格的元素时,使用XIB比使用标签调用视图更容易:) –

0

选择你的故事板的细胞,并在此字段中输入您的类的名称。

当您从识别出列,它会是类的一个实例。

enter image description here

+0

我已经完成了这个。 – user1904273

+0

你需要显示你的自定义单元的scrrenshot。 @ user1904273 –

+0

也许我误解了一些东西。我目前正在桌面视图中创建故事板中的自定义单元格。我必须在其他地方创建它吗? – user1904273

0

当你创建一个自定义单元格,你必须做这些事情:

  1. 设置标签,图像等的故事板细胞。

  2. 创建自定义类细胞(来自 的UITableViewCell继承)(CustomCell.h & .M),CustomCell.h具有所有 属性作为用于IBOutlet中标签,图像等,并且合成它们所有 在执行。

  3. 创建这个自定义类回去故事板后,选择 自定义单元格,改变其类的CustomCell并给它一些 标识,如“MyCustomCell”,然后右键单击自定义单元格 并以标签等

  4. 现在导入CustomCell类在你实现 了的UITableView类和使用属性在连接IBOutlets在CustomCell 类中定义。

(的UITableViewCell *)的tableView:(UITableView的*)的tableView的cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

static NSString *MyIdentifier = @"MyCustomCell"; 

CustomCell*cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier]; 

if (cell == nil) 
{ 
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
            reuseIdentifier:MyIdentifier] autorelease]; 
} 

// Here we use the provided setImageWithURL: method to load the web image 
// Ensure you use a placeholder image otherwise cells will be initialized with no image 
[cell.imageView setImageWithURL:[NSURL URLWithString:@"http://example.com/image.jpg"] 
       placeholderImage:[UIImage imageNamed:@"placeholder"]]; 
    cell.myCustomLabel.text = @"My Text"; 
return cell; } 
0

,你可以在你的主要故事板的创建自定义单元格拖动单元格视图。

为该原型创建自定义类。

在标识符检查器中提及类名称。

将该类导入到您的视图控制器.h文件。

并将您的自定义从主要故事板连接到自定义class.h文件。

它的工作原理!