0

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

这是拖入情节提要视图控制器的表格视图的样子:

普通情节提要表视图

这是 nib 文件中的样子:

笔尖表视图

它仍然包含默认的加利福尼亚数据。为什么不说“表格视图原型”?

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

正常细胞插入 笔尖细胞插入

我想用自定义单元格制作表格视图,但我不知道出了什么问题,或者我是否遗漏了一些东西,因为这是我第一次使用笔尖。

4

2 回答 2

2

它仍然包含默认的加利福尼亚数据。为什么不说“表格视图原型”?

因为原型只是故事板的一个特征——不是笔尖。

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

要将 nib 设计的单元格类型与不是来自情节提要的表格视图一起使用,您必须为单元格设置一个单独的nib (在 nib 中必须没有其他内容)。将笔尖注册到表格视图(在代码中);从那时起,当您使单元格出列时,表格视图将从笔尖加载单元格。请参阅我书中的这一部分:

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

于 2013-05-10T19:24:37.850 回答
1

不能在 xib 文件的表视图中嵌套表视图单元格是正常的。使用 xib 文件自定义单元格的一种可能方法是创建一个子类UITableViewCell并将其设置为 xib 文件中自定义单元格的文件所有者(为单元格创建一个 xib 文件)。然后,您将能够在自定义单元格和自定义UITableViewCell子类中的 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;
} 
于 2013-05-10T19:29:37.617 回答