将UIButton锚定到UITableViewController视图的底部

我有以下要求。 当显示UITableViewController的视图时,有可变数量的行。 在行的下面,应该显示一个button。

当行数很less时,button应该锚定到视图的底部。

当行数较大时,删除button应该放在最后一行之后。

换一种说法:

在这里输入图像说明

并不是:

在这里输入图像说明

我迄今为止的最佳尝试包括设置tableFooterView并尝试使用UITableViewcontentSize更新其高度,但是我遇到了各种各样的问题。 我可能会继续走下去,寻求一些帮助,但首先我想知道是否有人有更好的解决scheme。

结果必须与双倍大小的状态栏(例如在呼叫期间)很好地玩,我的目标是iOS 6.0。 我没有使用接口生成器。

实现这种效果的一个可能的解决scheme可能需要使用两种不同的解决scheme

  1. 如果行数意味着button将不在屏幕上,那么就像你一直在使用footerView。

  2. 如果行数意味着该button不会在屏幕外

    1. 将该button添加到tableView
    2. 实现- (void)scrollViewDidScroll:(UIScrollView *)scrollView并更新button的框架从底部偏移。

从底部的偏移可能会遵循这样的逻辑

  1. yOffset = CGRectGetHeight(tableView.frame) – (CGRectGetHeight(button.frame)+ somePadding)
  2. yOffset + = tableView.contentOffset.y

这意味着button仍然会随着滚动上下移动,但是您不必混淆footerView的高度

保持滚动视图内的表格视图和button。 将button保持在滚动视图的底部。 为了正确的滚动工作,您可能需要设置滚动视图的scrollEnabled属性。 有关更多详细信息,请查看

在UIScrollView中滚动UITableView

编辑:

yourView.autoresizingMask = UIViewAutoresizingFlexibleTopMargin;

检查这个问题的接受的答案关于使用代码来实现struts和spring的更多细节: UIView autoresizingMask – 接口生成器到代码 – 以编程方式创buildstruts和弹簧 – Swift或Objective-C