如何在UITableViewController管理的UITableView下面放置一个按钮

时间:2013-10-20 13:19:13

标签: ios uitableview

我的屏幕上有一个基于UITableViewController的控制器管理的表格视图。我现在想在屏幕底部添加一个按钮,以便与表格视图单元格一起滚动。

使用普通UITableViewController替换UIViewController不是一种选择,因为我想要包含UIRefreshControl。根据我的阅读,如果不诉诸任何黑客/依赖无证行为,目前无法使用UIRefreshControl而不使用UITableViewController

我尝试使用我的表视图控制器所包含的导航控制器提供的UIToolbar,但这种方法存在两个问题:

  1. 我只希望带有按钮的工具栏出现在顶级表格视图中。但是,我还没有找到一种优雅的方法来只显示顶级表格视图的工具栏。我希望工具栏在我向下钻取时与桌面视图一起显示在屏幕外面。
  2. 我还没有找到增加工具栏高度的方法。我是否必须将按钮放入虚拟UIView
  3. 这与我的目标大致相同:

    http://pic.rockmynews.com/img/free-iphone-app.png

    另一个想法是使用一个容器视图控制器,它包含底部的按钮和上面的表视图控制器作为其子视图控制器。但这似乎很简单。

    那么最好的方法是什么?有什么建议吗?

4 个答案:

答案 0 :(得分:1)

创建UIView容器视图。但是也要创建一个UIViewController子类来管理容器。然后,将现有的表视图控制器添加为子视图控制器,并将表视图添加为子视图。现在,您可以在仍具有自动刷新控制操作的同时控制所有子视图和位置。

答案 1 :(得分:1)

只需使用

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section

并返回所需按钮的UIView。和

tableView:heightForFooterInSection

并返回页脚高度

答案 2 :(得分:0)

如果您不想使用容器视图控制器,则可以使用第三方提取来刷新控件,如https://github.com/samvermette/SVPullToRefresh。如果你想支持iOS 5,那么它具有向后兼容的额外好处。

答案 3 :(得分:0)

您可以使用UITableViewController。只需覆盖viewDidLoad,然后调整tableView的大小,为额外的视图腾出空间,然后以编程方式添加视图。确保设置正确的大小调整蒙版,以便在不同的屏幕尺寸上看起来正确。 (通过在iPhone4和iPhone5上试用,在模拟器中轻松测试)