繁体   English   中英

如何在UITableViewController管理的UITableView下方放置按钮

[英]How to place a button below a UITableView managed by UITableViewController

我有一个带有基于UITableViewController的控制器管理的表视图的屏幕。 我现在想贴上一个按钮在屏幕的底部,所以它不会随着表视图细胞滚动。

用普通的UIViewController替换UITableViewController并不是一种选择,因为我想包括UIRefreshControl 从我所读的内容UIRefreshControl如果不借助任何黑客手段/依靠未记录的行为,则目前无法使用没有UITableViewControllerUIRefreshControl

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

  1. 我只希望带有按钮的工具栏出现在顶级表视图中。 但是,我还没有找到一种优雅的方式来仅显示顶级表视图的工具栏。 当我向下钻取时,我希望工具栏在屏幕外与表格视图一起向左移动。
  2. 我还没有找到增加工具栏高度的方法。 我必须将按钮放在虚拟UIView吗?

这大约是我的目标:

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

另一个想法是使用一个容器视图控制器,在底部包含按钮,在其上方的表视图控制器作为其子视图控制器。 但这似乎很简单,需要做很多工作。

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

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

只需使用

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

并返回所需按钮的UIView。

tableView:heightForFooterInSection

并返回页脚高度

如果您不愿意使用容器视图控制器,则可以使用第三方请求来刷新控件,例如https://github.com/samvermette/SVPullToRefresh 如果要支持它,它还具有向后兼容iOS 5的额外好处。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM