繁体   English   中英

UITableView + 在顶部添加内容偏移

[英]UITableView + Add content offset at top

我需要在 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)

斯威夫特 5.1

在 viewDidLoad 中添加以下内容

tableView.contentInset.top = 100

真的,这就是全部。

override func viewDidLoad() {
    super.viewDidLoad()
    tableView.contentInset.top = 100
}

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

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

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

我将 Jigzat 的回答与:

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

- (void)viewDidLoad

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

听起来您想UITableView周围包裹一个“视图”。 如果您在 IB 中有一个UITableViewController ,则UITableView将自动设置为UITableViewControllerview 您将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];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM