2013-02-26 75 views
0

我在XIB里面的uiviewcontroller里面使用了tableview。由于控制器不是UItablecontroller,因此我无法直接配置单元格。如果我在表格单元格中拖动,我可以使用单元格标识符等进行配置,但是XIB不使用我的tableview单元格。我如何加入它们?我宁愿不使用代码,因为这似乎违反了工作流的直觉。如何在tableview中配置tableviewcell,并将其添加到XIB中的UItableviewcontroller中?

+0

是静态或动态的tableview ?您可能正在寻找一个静态表格视图... – jackslash 2013-02-26 10:13:53

+0

它不是一个静态单元格 – 2013-02-26 10:54:54

+0

在这种情况下,你将不得不编码,使其工作。 xib非常适合布置和添加子视图。填充单元格是编程的 – jackslash 2013-02-26 11:26:09

回答

1

返回它如果您使用的故事板,你可以直接添加在VC中的自细胞并对其进行配置。但是,如果您使用的是xib,则必须创建一个自定义单元类并以编程方式加载它们,或者使用单独的xib中的自定义单元格创建一个自定义类,然后从xib加载自定义单元格,或者甚至仅使用简单自定义来创建xib表格单元格和来自xib的加载。请参阅UITableView上的apple文档

所以,据我所知,您需要在您的代码中的自定义单元格。如果你不使用故事板,请尝试使用这个。在这里,我创建了一个自定义类自定义单元格并在xib中添加了自定义单元格。我添加了一个单独的xib,在xib中拖放UITableViewCell(删除任何视图(如果存在))。现在点击您刚刚添加的单元格,在身份检查员中将类别名称更改为您创建的定制类别。选择文件所有者并将其更改为您需要定制单元的类的名称。 (这告诉你你的单元格将被用于tableview的委托和数据源所连接的特定类中)。 现在在您想要单元的类中添加一个UITableViewCell类型的IBOutlet。将它连接到你在xib中创建的单元格。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *cellIdentifier = @"CustomCell"; 
    YourCustomCell *cell = (YourCustomCell*)[tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 
      if (!cell) 
      { 
       [[NSBundle mainBundle] loadNibNamed:@"YourCustomCell" 
               owner:self 
              options:nil]; 
       cell = self.yourOutletCell; 
       self.yourOutletCell = nil; 
      } 
} 

如果您使用的是厦门国际银行的加载,如果你有自定义单元格的一个以上的厦门国际银行的,您可以通过厦门国际银行的名称加载它们这样

NSArray *topLevelObjects; 
topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"YourCustomCell" owner:self options:nil]; 
for (id currentObject in topLevelObjects) 
     { 
      if ([currentObject isKindOfClass:[UITableViewCell class]]) 
       { 
       cell = (YourCustomCell *) currentObject; 
        break; 
       } 
     } 
+0

谢谢,我想使用自定义单元类,如何在代码中加载自定义单元类的XIB?有没有教程链接的地方获取更多信息? – 2013-02-27 08:51:27

+0

你能否详细说明一下?你想在你的代码中做什么? – Meera 2013-02-27 08:54:19

+0

我需要一个定制的tableview单元格,它具有从uiviewcontroller中的tableview加载的XIB。我还没有代码,但我知道我可以在代码中引用自定义类 - 它如何知道使用哪个XIB? – 2013-02-27 10:33:46

0

如果它是一个静态的单元,可以指向与出口这个单元格,然后在cellForRowAtIndexPath

+0

它不是一个静态单元格 – 2013-02-26 10:54:29

+0

所以你必须做一个自定义单元格。从“UITableViewCell”中继承新的类,然后将xib文件中的单元的类从“UITableViewCell”更改为新的Class。使用新类在'cellForRowAtIndexPath'中创建新的单元格。 注意:我认为这只适用于故事板,请检查 – 2013-02-26 11:12:35

+0

谢谢,我必须使用XIBs – 2013-02-27 08:51:59

相关问题