【问题标题】:UITableView + Add content offset at topUITableView + 在顶部添加内容偏移
【发布时间】:2011-01-21 07:54:30
【问题描述】:

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

怎么做?

【问题讨论】:

    标签: ios uitableview cocoa-touch uikit contentoffset


    【解决方案1】:

    我不确定我是否在关注你,但我想我也遇到了同样的困境。就我而言,我必须在屏幕顶部为 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)
    

    【讨论】:

    • 需要这样才能在顶部不显示“正在加载”单元格,在渲染该单元格时切换回自我插入,在 reloadData 发生时切换回 -50 顶部。谢谢!
    • 您可能还想调整滚动指示器:[self.tableView setScrollIndicatorInsets:UIEdgeInsetsMake(50,0,0,0)];
    • 是的,或者更好的是,像这样调整滚动指示器:[self.tableView setScrollIndicatorInsets:[self.tableView contentInset]];
    【解决方案2】:

    斯威夫特 5.1

    在 viewDidLoad 中添加以下内容

    tableView.contentInset.top = 100

    真的就是这样。

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

    【讨论】:

    • 宾果游戏。 竖起大拇指
    【解决方案3】:

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

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

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

    【讨论】:

      【解决方案4】:

      我将 Jigzat 的回答与:

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

      - (void)viewDidLoad
      

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

      【讨论】:

        【解决方案5】:

        听起来您想在您的UITableView 周围加上一个“视图”。如果您在 IB 中有 UITableViewController,则 UITableView 将自动设置为 UITableViewControllerview。您将 view 属性更改为普通的 UIView 并在其中添加您的 UITableView 并给它一个偏移量。

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

        UITableViewController.view = UITableView
        

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

        UITableViewController.view = UIView
        

        并将您的表格添加到 UIView

        【讨论】:

          【解决方案6】:

          我将这个答案与这个答案结合起来: 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];
          

          【讨论】:

            猜你喜欢
            • 2011-12-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-05-17
            • 1970-01-01
            • 2016-10-10
            • 1970-01-01
            相关资源
            最近更新 更多