UITableView +在顶部添加内容偏移量

时间:2010-02-26 05:09:34

标签: ios uitableview cocoa-touch uikit contentoffset

我需要在UITableView的顶部添加一些不影响内容区域大小的空白区域。移动内容或添加空白单元格不是我想要做的。相反,我只想要一个偏移。

如何?

6 个答案:

答案 0 :(得分:268)

我不确定我是否跟着你,但我认为我有同样的困境。在我的情况下,我必须为屏幕顶部的ADBannerView提供一些空间,所以我所做的是在我添加的viewDidLoad方法中:

[self.tableView setContentInset:UIEdgeInsetsMake(50,0,0,0)];

所需的值是UIEdgeInsetsMake(上,左,下,右)。

或者与Swift相同:

self.tableView.contentInset = UIEdgeInsetsMake(50, 0, 0, 0)

Swift 4.2:

self.tableView.contentInset = UIEdgeInsets(top: 50, left: 0, bottom: 0, right: 0)

答案 1 :(得分:5)

您可以向表中添加一个“空”标题视图...这会使表的初始外观具有偏移量,但是一旦开始滚动,偏移量就会消失。确定这就是你想要的。

如果您需要永久偏移并且尚未使用节标题,那么您可以通过为节标题创建自定义视图来创建类似于上面的偏移量,特别是如果您只有一个节,这可以让您看起来像永久抵消。

我可以发布示例代码,如果它听起来像你正在寻找的那样。

答案 2 :(得分:4)

我将Jigzat的回答与:

结合起来
[self.tableView scrollRectToVisible:CGRectMake(0, 0, 320, 1) animated:NO];

- (void)viewDidLoad

所以第一个单元格不在顶部。

答案 3 :(得分:2)

听起来像是要围绕UITableView打包“查看”。如果您在IB中有UITableViewControllerUITableView将自动设置为view的{​​{1}}。您将UITableViewController属性更改为正常view并在其中添加UIView并为其添加偏移量。

--- ---编辑 我只是阅读了我的帖子,并认为它没有意义:)当你创建一个UITableView时,你会得到这个(伪代码):

UITableViewController

这意味着实际的表将占用整个空间,您甚至无法添加其他视图。所以你需要改变

UITableViewController.view = UITableView

并将您的表格添加到UITableViewController.view = UIView

答案 4 :(得分:2)

swift 5.1

tableView.contentInset.top = 100

答案 5 :(得分:0)

我将此答案与此答案结合在一起: https://stackoverflow.com/a/9450345/1993937

要使tableView出现在内容插图的顶部,因此,当视图最初出现时,通过使tableView略微向下滚动,不会切断顶部的空间。 (18是我的最大空缺)

[self.tableView setContentInset:UIEdgeInsetsMake(18,0,0,0)];
[self.tableView setContentOffset:
 CGPointMake(0, -self.songListTable.contentInset.top) animated:YES];