这是我第一次使用nib文件,我正在使用它们因为我要切换两个视图而不会使故事板膨胀以便于UI编辑。我带着儿童视图控制器,所以我可以分开一切。其中一个子控制器将包含表视图委托和数据源。所以我在IB中创建了一个带有单个视图的笔尖。我在表视图中拖动,但它已经做了一些奇怪的事情。
以下是拖入故事板视图控制器的表格视图:
以下是nib文件中的内容:
它仍然有默认的加州数据。为什么不说“Table View Prototype”?
无论如何,我试图添加一个单元格,但我不能。第一个图像是通常发生的,单元格是嵌套的。但是,在笔尖中,它不会进入表格视图。
我想用自定义单元格制作表格视图,但我不知道出了什么问题,或者我错过了什么,因为这是我第一次使用笔尖。
答案 0 :(得分:2)
它仍然有默认的加州数据。为什么不说“Table View Prototype”?
因为原型只是故事板的一个特征 - 而不是笔尖。
无论如何,我试图添加一个单元格,但我不能。第一个图像是通常发生的,单元格是嵌套的。但是,在笔尖中,它不会进入表格视图。
要使用nib设计的单元格类型以及不是来自故事板的表格视图,您必须为单独的单元格单独设置单独的笔尖(那里)必须
答案 1 :(得分: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;
}