1

我有一个屏幕,我想在其中显示某些产品的详细信息。我正在使用故事板。

我已经使用带有静态单元格的表格视图完成了这项工作,但静态单元格只能在 UITableViewController 的表格视图中完成。有问题的一点是我还想在这个控制器中有一个 Imageview。这是不可能的,因为 UITableViewController 的 tableview 占据了所有的屏幕尺寸。

所以我将 Imageview 作为 tableview 的子视图。

我想知道这是否是正确的方法,stackoverflow 上有类似的问题,但没有一个与我的用例相对应(storyboard + tableviewcontroller + staticcell + sub view)

4

3 回答 3

1

您可以拥有 UITableViewController 的子类。初始化后,获取它的视图(tableView)并将其作为子视图添加到其他视图控制器。这样,您可以将 tableView 的框架设置为占据(顶部包含)视图控制器的底部。对于同一个视图控制器,您可以添加额外的子视图,如 UIImageView 并将其放置在顶部。您将遇到的唯一问题可能与您的 UITableViewController 子类(viewWillDisappear、viewDidDissappear、viewWillAppear、viewDidAppear、...)的通知丢失有关。但是您可以将它们转发到您的顶视图控制器。或者您可以使用 iOS 5 中的方法将 UITableViewController 的子类添加为子视图控制器并根据需要定位它。但如果您计划支持 iOS 5.0+ 的设备,这很有用。

请参阅 UIViewController 中的方法文档:

- (void)addChildViewController:(UIViewController *)childController __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0);
于 2012-07-24T17:19:13.927 回答
1

无需编写任何自定义代码,您可以:

  1. 将 UIImageView 放在表格视图的页眉或页脚视图中。
  2. 创建一个静态单元格并将 UIImageView 放入其中。表格单元格不必是统一的长度,如果需要,您可以使其比其他单元格高。
于 2012-07-24T17:23:08.903 回答
0
  • 使用 UITableView 作为 viewController 的属性并将其添加到 vc.view,而不是子类化 UITableViewController,然后根据需要设置其框架
  • 将 imageView 添加到 vc. 如果你需要把它放在 UITableView 的顶部,例如,将它添加为 TableView 的 header。
于 2012-07-24T14:30:26.323 回答