1

我有一个初学者 iPhone 项目正在进行。我有一个 TableView,它只是一个列表框,里面有一堆条目,底部有一个小的 UiView。见图片。

问题是 UiView 本质上成为列表框的一部分,并且只会在我向下滚动到 TableView 中的最后一项时出现。

我希望 UiView 固定在底部并且永远不会移动。我环顾了整个界面生成器,但找不到任何东西(尽管在它的辩护中,我完全是 iPhone 开发的菜鸟)。我该如何完成这样的技巧?

替代文字 http://www.sqleffects.com/mystuff/ibissue.jpg

4

4 回答 4

3

好的,你需要的是一个 UIView,它包含

  1. 一个 UIView,它充当 TableViewController,因此必须实现 UITableViewDelegate 和 UITableViewDataSource 协议(但它不能直接从 UITableViewController 派生,因为这样做 UITableView 将自动占据整个屏幕大小(工具栏、导航栏和/或标签栏))
  2. 另一个 UIView,你想放在底部的那个

通过这样做,您可以在 IB 中创建一个 UITableView(不是 UITableViewController!)并将其与您的 UIView 中的 UITableView 属性连接起来(在 1. 中提到的那个)

使用这种方法可以给 UITableView 一个固定的大小(你需要这样做,以便在底部为你的第二个 UIView 留出空间)

于 2009-09-08T07:16:25.427 回答
2

要构建 gabtub 的答案,包含您的表格视图和底部视图的 UIView 不需要实现 UITableViewDelegate 和 UITableViewDataSource 方法。

由于听起来您正在使用视图控制器进行构建,因此我将您的主视图控制器设为 UIViewController 的子类(而不是使用 UITableViewController)。然后,您可以将 UITableView 和 UIView 添加到 UIViewController 的视图实例中。

然后我会让你的 UIViewController 子类实现 UITableViewDelegate 和 UITableViewDataSource 协议——你最终会得到与你的旧 UITableViewController 子类相似(代码方面)的东西,但它的视图属性将是底层 UIView 而不是 UITableView 实例(如果您在调试器中四处寻找,您可以看到 [UITableViewController view] 和 [UITableViewController tableView] 返回相同的对象)

与 gabtub 的建议相比,它的优点之一是它使您免于创建一次性 UIView 子类,因为您可能已经获得了一次性 UIViewController 子类(或者,以前有一个一次性 UITableViewController 子类)。

于 2009-09-11T04:24:29.317 回答
1

问题可能是,现在,UIView 是一个节页脚视图,因此包含在表视图中。

如果你从 TableView 中删除 UIView,缩放 TableView 为 UIView 腾出更多空间,然后将你的 UIView 放在你想要的位置,它可能会被添加到 TableView 的超级视图中。然后,您可以将 TableView 调整为正确的大小。

于 2009-09-08T06:55:13.533 回答
0

底线是:如果您基于 Navigation 模板创建项目,则无法调整 UiTableView 的大小。

所以要做我想做的事,我基本上必须从头开始,选择一个基于视图或窗口的模板,然后手动将 UiTableView 放在上面。

于 2009-09-09T21:42:52.470 回答