91

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

如何?

4

6 回答 6

295

我不确定我是否在关注你,但我想我也有同样的困境。在我的情况下,我必须在屏幕顶部为 ADBannerView 留出一些空间,所以我所做的是在我添加的 viewDidLoad 方法中:

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

它采用的值是 UIEdgeInsetsMake(top,left,bottom,right)。

或者与 Swift 相同:

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

斯威夫特 4.2:

self.tableView.contentInset = UIEdgeInsets(top: 50, left: 0, bottom: 0, right: 0)
于 2010-07-07T03:04:26.580 回答
11

斯威夫特 5.1

在 viewDidLoad 中添加以下内容

tableView.contentInset.top = 100

真的,这就是它的全部。

override func viewDidLoad() {
    super.viewDidLoad()
    tableView.contentInset.top = 100
}
于 2019-10-12T19:19:21.250 回答
5

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

如果您需要一个永久偏移并且尚未使用部分标题,那么您可以通过为部分标题制作自定义视图来创建类似于上面的偏移,特别是如果您只有一个部分,这可能会给您带来永久偏移的外观.

如果听起来您正在寻找其中任何一个,我可以发布示例代码。

于 2010-02-26T07:32:47.427 回答
4

我将 Jigzat 的回答与:

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

- (void)viewDidLoad

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

于 2011-09-01T07:00:55.010 回答
2

听起来你想在你的UITableView. 如果您UITableViewController在 IB 中有 a ,UITableView则将自动设置为viewof UITableViewController。您将view属性更改为普通属性UIView并在其中添加您UITableView并给它一个偏移量。

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

UITableViewController.view = UITableView

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

UITableViewController.view = UIView

并将您的表格添加到其中UIView

于 2010-02-26T08:37:41.723 回答
1

我将这个答案与这个答案结合起来: 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];
于 2019-07-18T02:09:19.353 回答