静态UITableView不是全屏

时间:2012-12-30 14:29:56

标签: objective-c ios uitableview

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

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

2 个答案:

答案 0 :(得分:2)

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

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

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

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

- (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;
}

答案 1 :(得分:0)

您不需要使用UITableViewController。只需将控制面板中的表视图拖放到故事板中的UIViewController即可。根据您的需要调整大小和位置,并将任何其他控件添加到您需要的UIViewController中。

在UITableView的属性表中,将内容类型设置为“静态单元格”,然后按照您希望的方式定义单元格。

enter image description here