我需要在UITableView的顶部添加一些不影响内容区域大小的空白区域。移动内容或添加空白单元格不是我想要做的。相反,我只想要一个偏移。
如何?
答案 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中有UITableViewController
,UITableView
将自动设置为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];