10

如何复制 Notes 应用程序中的这种行为:

  1. 你有一个UITableViewController与物品,
  2. 您可以向下滚动列表(有很多项目),
  3. 当您点击列表底部时,您可以“过度滚动”一点,但列表不会一直向后滚动。最后一项下方会有一些空间。Notes 中使用此空间来显示一些布局图像。

用照片演示: 照片 1

这是一个“未滚动”列表。它很容易创建这样的使用UITableViewController。当您“拉”列表时,默认值UITableViewController只会反弹回此状态。

但是,Notes 允许这样做: 照片 2

例如。滚动后留出一点空间,不要让它一直弹回来。

你如何复制这种行为?

4

5 回答 5

13

您可以像这样更改 tableView 的内容插图:

[_tableView setContentInset:UIEdgeInsetsMake(0, 0, 100, 0)];

滚动时,您最终会在 tableView 底部插入一个 100 像素的插图。

于 2013-03-04T13:52:40.913 回答
5

这是一个简单的方法。

只需(可能在您的 ViewDidLoad 中)添加一个空白 UIView 作为 UITableView 的表页脚。

像这样的东西:

UIView *footer = [[UIView alloc] init];
footer.frame = CGRectMake(0, 0, 0, 100); // The only one that matters here is the height
self.tableView.tableFooterView = footer; // tableView is an outlet to the tableView
于 2013-03-04T14:48:39.647 回答
5

迅速:

我认为在 Swift 中执行此操作的方法是这样的。

tableView.contentInset = UIEdgeInsetsMake(0, 0, 100, 0)

我知道这是一个老问题,但它可能会使某人受益。

于 2016-05-17T18:55:31.200 回答
4

迅速:

    let footer:UIView = UIView(frame: CGRectMake(0, 0, 0, 44))
    tableView.tableFooterView = footer
于 2014-11-22T14:33:57.357 回答
3

更新 Kirualex 响应:

理想放置:UITableViewController viewDidLoad

斯威夫特 3:

// Add 50 extra pixels at bottom of the list when scrolling
self.tableView.contentInset = UIEdgeInsets(top:0, left: 0, bottom: 50, right: 0)
于 2017-09-01T13:41:20.503 回答