0

我正在尝试创建消息屏幕,我将 UITableView 放在一个视图中,其页脚中有一个 UITextField 和 UIButton。

当 UITableView 没有数据或数据较少并且其页脚到达顶部时,问题就开始了,这不应该是,如下图所示。

在此处输入图像描述

它假设在底部,或者我可以将 UITableView 与底部对齐,就好像它的数据较少一样,至少页脚(具有 UITextField 和 UIButton)应该在底部,如下图所示

在此处输入图像描述

我控制层次结构是这样的

在此处输入图像描述

请帮忙,将 TextFiels 和按钮保持在底部,要么它有数据,要么没有。

4

2 回答 2

3

在大多数情况下,您不需要将 aUITableView放入 a 中,UIScrollView因为UITableView它已经是 a 的子类UIScrollView

至于你问的问题。您真的想要表格中的文本字段和按钮吗?当您考虑大多数短信应用程序时,您希望文本字段始终可见,而不管在消息中上下滚动。因此,您可能希望将其从桌子中取出并将其放在桌子下方的屏幕底部。顺便说一句,这也可以解决您的问题。

也许你真的想要它作为页脚。你仍然可以做到。有 2 种方法可以完成任务。

  1. 检查所有行的组合高度 + 页脚的高度。如果这小于您的屏幕空间,请增加页脚的高度以填充其余空间。您必须确保文本字段/按钮与页脚底部对齐。

    // where 'footer' is the view of your footer
    CGFloat newFooterHeight;
    if (sumRowHeight + defaultFooterHeight < view.frame.size.height) {
        newFooterHeight = view.frame.size.height - sunRowHeight;
    } else {
        newFooterHeight = defaultFooterHeight;
    }
    
    CGRect alteredFooterFrame = footer.frame;
    footer.frame.size.height = newFooterHeight;
    footer.frame = alteredFooterFrame;
    
  2. 做与上面几乎相同的事情,但不是缓冲页脚的大小,而是增加最后一行的高度。
于 2012-12-21T16:29:05.897 回答
0

不要在表格中包含文本视图和按钮。将它们作为表的兄弟放在根视图中。这样您就可以将它一如既往地放在屏幕底部。

于 2012-12-21T16:28:36.250 回答