【问题标题】:iOS : How to allign UITableView to bottom?iOS:如何将 TableView 对齐到底部?
【发布时间】:2012-12-21 15:49:51
【问题描述】:

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

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

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

我的控件层次结构是这样的

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

【问题讨论】:

  • tableview 中有大量数据时会发生什么......您仍然需要在屏幕末尾或 tableview 末尾有页脚吗?为什么你需要一个滚动视图作为你的表格视图的超级视图? tableview 已经有一个滚动视图

标签: iphone objective-c ios ipad xcode4.2


【解决方案1】:

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

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

也许您真的希望它作为页脚。你仍然可以做到。有两种方法可以完成任务。

  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. 执行与上述几乎相同的操作,但不是缓冲页脚的大小,而是增加最后一行的高度。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-26
      相关资源
      最近更新 更多