2013-05-10 91 views
0

这是我第一次使用笔尖文件,我使用它们,因为我要切换两个视图,而不会膨胀故事板,以便于UI编辑。我去了儿童视图控制器,所以我可以分开一切。子控制器的其中一个将包含表视图委托和数据源。所以我在IB中创建了一个具有单一视图的笔尖。我拖着一张桌子,但它已经在做一些奇怪的事情。子视图控制器笔尖与表查看

下面是一个表格视图拖入故事板视图控制器看起来像:

normal storyboard tableview

,这里是什么样子的笔尖文件:

nib tableview

它仍然有默认的加州数据。为什么不说“Table View Prototype”?

无论如何,我试图添加一个单元格,但我不能。第一个图像是通常发生的情况,单元格是嵌套的。但是,在笔尖中,它不会进入表格视图。

normal cell insertnib cell insert

我想和定制单元表视图,但我不知道什么是错的,或者如果我失去了一些东西,因为这是用笔尖我的第一次。

+0

您只能在UITableViewController中使用Prototype单元格。 – danypata 2013-05-10 19:26:11

回答

2

它仍然有默认的加州数据。为什么不说“Table View Prototype”?

因为原型只是故事板的一个功能 - 不是笔尖。

无论如何,我试图添加一个单元格,但我不能。第一个图像是通常发生的情况,单元格是嵌套的。但是,在笔尖中,它不会进入表格视图。

使用具有表视图笔尖设计的细胞类型不是来自一个故事板,你必须有一个独立的笔尖只是细胞(必须有在闲来无事笔尖)。用表格视图注册笔尖(在代码中);从那时起,当你出队一个单元格时,表格视图会从nib中加载单元格。见我的书的这一部分:

http://www.apeth.com/iOSBook/ch21.html#_custom_cells

+0

谢谢,我认为就是这样。所以我需要一个单独的笔尖作为表格视图和表格单元格? – Ryan 2013-05-10 19:49:44

+0

现在明白了一切。再次感谢。 – Ryan 2013-05-10 20:39:06

1

这是正常的,你不能窝在一个XIB文件表视图内的表视图单元格。使用xib文件定制单元格的一种可能方法是创建UITableViewCell的子类并将其设置为xib文件中的自定义单元的文件所有者(为单元格创建xib文件)。然后,您将能够在自定义单元中的UI元素与自定义子类之间创建分支。

在下面的示例中,我将使用MyCustomCell作为包含该单元格的xib文件的名称,以及从UITableViewCell派生的自定义类的名称。

要注册您的表视图细胞,把这个在您的UITableViewController子类:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    UINib *cellNib = [UINib nibWithNibName:@"MyCustomCell" bundle:nil]; 
    [self.tableView registerNib:cellNib forCellReuseIdentifier:@"MyCustomIdentifier"]; 
    ... 
} 

最后,在tableView:cellForRowAtIndexPath:方法,你可以使用其标识出队自定义单元格,并使用插座设置其视觉特性您之前创建的:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    MyCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyCustomIdentifier"]; 

    // Configure cell using its outlets 

    return cell; 
} 
+0

感谢代码Daniel。如果我没有这本相同的代码书,这将节省我很多时间。 – Ryan 2013-05-10 20:18:33

相关问题