1

对于我的注册表单,我目前使用的不是全屏 UITableView,我通过硬编码数据源方法以编程方式添加单元格。到那时,整个班级变得非常复杂和庞大。 Pastebin 链接

这些单元格是自定义的,具有 UILabel 和 UITextfield。现在其中一个单元格应该有一个按钮而不是文本字段。在我看来,这会使整个事情变得更加复杂。所以我的想法是在情节提要中使用 tableview 的静态功能。但这需要一个 UITableViewController,如果我使用一个,TableView 总是全屏的。有没有办法在没有全屏 TableView 的情况下设置静态功能?

4

2 回答 2

2

如果您有固定数量的单元格,则静态表格视图控制器是一个不错的选择。正如您所提到的,您可以将每个输入字段包含为一个 IB 出口,而不是实现数据源方法。

如果您想要一个非全宽的静态表格视图控制器,请将表格视图控制器嵌入容器视图中。

例如,创建一个新的视图控制器,在这个新的视图控制器中添加一个具有所需宽度的容器视图对象,然后将您的静态表视图控制器连接到容器视图。

请注意,静态表视图控制器成为封闭视图控制器的 childViewController。您可以方便地从带有弱属性的封闭视图控制器访问文本字段到带有子视图控制器中的文本字段。

- (UITextField *)surnameTextField
{
  UITextField *textField;

  // reference childController that is initiated via containerView
  if ([[self.childViewControllers lastObject] isKindOfClass:[NameViewController class]])
  {
    NameViewController *nameVC = [self.childViewControllers lastObject];
    textField = nameVC.surnameTextField;
  }

  return textField;
}
于 2012-12-30T14:44:13.040 回答
0

你不需要使用 UITableViewController。只需将表格视图从控制面板拖放到情节提要中的 UIViewController 上。根据需要调整大小和位置,并将任何其他控件添加到所需的 UIViewController。

在 UITableView 的属性表中,将内容类型设置为“静态单元格”,然后定义您想要的单元格。

在此处输入图像描述

于 2012-12-30T14:46:15.630 回答