如何在不使用Storyboard的情况下在UITableView中使用静态单元格?

Kyl*_*Fox 31 uitableview ios

我的项目中有一个现有的ViewController + xib,现在我想添加一个带静态单元格的UITableView,如下所示:

TableView与静态单元格

但是当我将UITableView拖到我的屏幕上时,我没有在Attributes Inspector中有"Content> Static"菜单.

我已经尝试制作我的控制器子类UITableViewController,但这没有帮助 - 我仍然没有选择在Attributes Inspector中使用静态单元格.

我查看了StackOverflow,但没有找到这个问题的任何现有答案.所有现有问题都与Storyboard(我没有使用)有关,而不是xib文件.

我的猜测是,当你将一个UITableViewController添加到一个故事板时,Xcode会产生某种魔力,但是当你将现有的xib更改为从UITableViewController继承时,它不会.

有关如何将静态单元格的表格视图添加到现有xib的任何建议吗?

Col*_*ber 45

静态表格视图单元格仅在使用故事板时可用.但是,如果您没有为整个UI使用故事板,您仍然可以将它们用于单个屏幕而不是屏幕集合.

为此,您可以创建一个UIStoryboard文件,其上有一个视图控制器,其文件所有者设置为您的自定义视图控制器子类.将VC的标识符设置为某个值.当您想要显示它时,获取故事板,然后通过从故事板创建VC来实例化视图控制器子类.

UIStoryboard *tableViewStoryboard = [UIStoryboard storyboardWithName:@"your storyboard" bundle:nil];
CustomViewController = [tableViewStoryboard instantiateViewControllerWithIdentifier:@"custom identifier"];
Run Code Online (Sandbox Code Playgroud)

您可以像往常一样在应用中展示此VC.

这是开始使用故事板而不必转换整个应用程序以使用它们的好方法.


小智 26

没有故事板,这是可行的:

  1. 你的控制器必须采用tableview委托和源代码的协议... UITableViewDelegate,UITableViewDataSource
  2. 将表格视图添加到.xib; 将表视图的样式设置为"分组"
  3. 将表连接到控制器中的属性(让我们称之为"yourTableView")
  4. 将表格视图单元格添加到.xib作为单独的视图...即作为表格视图的子视图...它们将在.xib中自由浮动.(见下面的示例图片)
  5. 向表格单元格添加控件/标签等.
  6. 将唯一字符串分配给每个表视图单元格的"属性"中的"标识符"字段.
  7. 将表格单元格连接到控制器中的其他属性(sliderCell,switchCell等)
  8. 将单元格控件的发送事件连接到控制器中的IBAction-ed方法 - (IBAction)handleSliderCell等.
  9. 在控制器的viewDidLoad方法中,将表视图的委托和源分配给控制器(self.yourTableControl.delegate = self; self.yourTableControl.dataSource = self;)
  10. 在控制器中实现numberOfSectionsInTableView,numberOfRowsInSection和cellForRowAtIndexPath
  11. 在tableView:cellForRowAtIndexPath:中,返回yourFirstCell,yourSecondCell等指针以获取适当的indexPath值

表格单元格控件的事件应该转到处理程序例程......

步骤4的示例: 厦门国际银行