我有自己的表格视图单元格,它在我的故事板中定义。我还为这个特殊的单元格定义了一个自定义 UITableViewCell 类。因此,当我想为我的自定义原型单元创建一个 Outlet 时,我收到一个无法创建 Outlet 的错误。
由于这是不可能的,我不得不做一些丑陋的变通方法,并在 IB 中使用标签来稍后在我的代码中引用各个标签和按钮。
我真的不明白为什么这是不可能的,我想知道使用标签和 [myCell viewWithTag:] 是否是最好的方法?
我有自己的表格视图单元格,它在我的故事板中定义。我还为这个特殊的单元格定义了一个自定义 UITableViewCell 类。因此,当我想为我的自定义原型单元创建一个 Outlet 时,我收到一个无法创建 Outlet 的错误。
由于这是不可能的,我不得不做一些丑陋的变通方法,并在 IB 中使用标签来稍后在我的代码中引用各个标签和按钮。
我真的不明白为什么这是不可能的,我想知道使用标签和 [myCell viewWithTag:] 是否是最好的方法?
因为插座是控制器和视图中特定项目之间的一对一连接。在原型单元格的情况下,它只是对可以具有任意数量的不同项目(即表格视图中的行)的单元格的描述。控制器如何知道您指的是哪个项目(例如第 5 行或第 500 行)?这就是您收到错误消息的原因。
Lucas 提供了一种通过标签引用您的连接的方法,效果非常好。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CellIdentInIB"];
UIImageView *img = (UIImageView*) [cell.contentView viewWithTag:1];
//img.image = ...
//Access you prototype cell here to alter its style, example:
[[cell layer] setCornerRadius:10];
[cell setClipsToBounds:YES];
return cell;}
我假设您正在使用动态原型 - 在情节提要的表格视图的属性检查器中,有一个选项可以选择“静态单元格”或“动态原型”。如果您选择“静态单元格”,您可以做您想做的事情,因为在运行时,对于情节提要中的每个单元格,您的表格视图中只有一个单元格。使用这种方法,您将只能使用您在情节提要中创建的单元格,即您将无法选择代码中的单元格数量。