我需要在不影响内容区域大小的 UITableView 顶部添加一些空白区域。向下移动内容或添加空白单元格不是我想要做的。相反,我只想要一个偏移量。
如何?
我需要在不影响内容区域大小的 UITableView 顶部添加一些空白区域。向下移动内容或添加空白单元格不是我想要做的。相反,我只想要一个偏移量。
如何?
我不确定我是否在关注你,但我想我也有同样的困境。在我的情况下,我必须在屏幕顶部为 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)
在 viewDidLoad 中添加以下内容
真的,这就是它的全部。
override func viewDidLoad() {
super.viewDidLoad()
tableView.contentInset.top = 100
}
您可以向表格添加一个“空”标题视图......这将使表格的初始外观具有偏移量,但是一旦您开始滚动偏移量就会消失。不确定那是你想要的。
如果您需要一个永久偏移并且尚未使用部分标题,那么您可以通过为部分标题制作自定义视图来创建类似于上面的偏移,特别是如果您只有一个部分,这可能会给您带来永久偏移的外观.
如果听起来您正在寻找其中任何一个,我可以发布示例代码。
我将 Jigzat 的回答与:
[self.tableView scrollRectToVisible:CGRectMake(0, 0, 320, 1) animated:NO];
在
- (void)viewDidLoad
所以第一个单元格不在顶部。
听起来你想在你的UITableView
. 如果您UITableViewController
在 IB 中有 a ,UITableView
则将自动设置为view
of UITableViewController
。您将view
属性更改为普通属性UIView
并在其中添加您UITableView
并给它一个偏移量。
---编辑---我刚刚阅读了我的帖子并认为它没有什么意义:)当你创建一个时,UITableViewController
你会得到这个(在伪代码中):
UITableViewController.view = UITableView
这意味着实际的表格将占据整个空间,您甚至无法添加其他视图。所以你需要改变
UITableViewController.view = UIView
并将您的表格添加到其中UIView
我将这个答案与这个答案结合起来: 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];