为什么我的UITableView顶部有额外的填充,iOS7中的样式为UITableViewStyleGrouped

esi*_*ver 616 uitableview ios ios7

从iOS7开始,我的顶部UITableView有一个额外的空间,有一个风格UITableViewStyleGrouped.

这是一个例子:

在此输入图像描述

tableview从第一个箭头开始,有35个像素的无法解释的填充,然后绿色标题是UIView返回的viewForHeaderInSection(其中该部分为0).

任何人都可以解释这个35像素的数量来自何处以及如何在不切换的情况下摆脱它UITableViewStylePlain

Ale*_*der 857

以下是我的帮助:

YouStoryboard.storyboard> YouViewController>属性检查器>取消选中 - 调整滚动视图插入.

在此输入图像描述

  • 我认为这是删除填充的正确方法,而不是篡改edgeInset值. (41认同)
  • 我在容器视图中遇到了TableViewController这个问题.我不得不直接在嵌入的TableViewController上设置此属性,而是在包含容器视图的视图控制器上.然后它奏效了. (27认同)
  • 这对我来说不起作用 - 我上面有一个不透明的导航栏,这个关闭会推动它下面的内容. (20认同)
  • 使用自定义`collectionview`时不起作用.(当tableview在`collectionviewcell`里面时) (5认同)
  • 不适合我; 唯一有效的方法是切换到Plain而不是Grouped (5认同)
  • 这个选项纯粹是为了惹恼吗? (4认同)
  • 替代代码:`self.automaticallyAdjustsScrollViewInsets = NO;` (3认同)
  • 请注意,此属性位于封闭的UIViewController上,而不是在tableview本身上. (2认同)
  • `self.automaticallyAdjustsScrollViewInsets = NO.是解决方案.解释如下:https://useyourloaf.com/blog/extra-space-when-embedding-table-views/z (2认同)

Mr.*_*. T 314

我玩了一下它,似乎这是设置tableView的副作用tableHeaderView = nil.

因为我的tableView有一个动态出现tableHeaderView,当我需要隐藏tableHeaderView,而不是做self.tableView.tableHeaderView = nil;,我做:

self.tableView.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.tableView.bounds.size.width, 0.01f)];
Run Code Online (Sandbox Code Playgroud)

我喜欢这个解决方案比设置一些任意更好,contentInset.top因为我也contentInset.top动态使用它.每当我重新计算时,必须记住删除额外的35px contentInset.top是乏味的.

  • 你先生应该获得奖牌 (7认同)
  • 请记住,表视图顶部的0.01f高度视图将表示所有单元格beaneath未对齐(第一个单元格的Y原点为0.01,下一个单元格高度为+ 0.01等),因此这些单元格的内容会不对齐.(在模拟器中打开`Debug> Color Misaligned Images`以自己查看.)你不想那样做. (7认同)
  • 好方案!实际上,您必须将其设置为0.01f以摆脱代码中的默认表视图标题视图. (4认同)
  • 顺便说一句,这也可以在Interface Builder中进行一次拖放操作.不管怎样,谢谢!:) (2认同)
  • 最好使用`UITableViewHeaderFooterView`而不是UIView.并且`CGFLOAT_MIN`的工作原理与`0.01f`相同,但理论上更好. (2认同)
  • @SimonWhitaker我发现iOS8.4 iPhone 6上具有高度CGFLOAT_MIN的tableHeaderView下方单元格中的图像没有与"颜色未对齐图像"错位. (2认同)
  • 这对我有用,而edgesForExtendedLayout不起作用. (2认同)
  • 另一个解决方案(设置self.automaticallyAdjustsScrollViewInsets = false)对我来说不起作用,但这很有效.请注意,最好使用CGFloat.min或1.0(而不是0.01),以避免错位图像,如上所述 (2认同)
  • @PhuahYeeKeat 或者可以使用 `CGFloat.leastNonzeroMagnitude` (2认同)

yea*_*xon 178

对于IOS 7,如果要在视图控制器中分配tableview,可以查看

self.edgesForExtendedLayout = UIRectEdgeNone;
Run Code Online (Sandbox Code Playgroud)

你的问题似乎与我的相似

更新:

iOS 9.x中的Swift:

self.edgesForExtendedLayout = UIRectEdge.None
Run Code Online (Sandbox Code Playgroud)

斯威夫特3:

self.edgesForExtendedLayout = UIRectEdge.init(rawValue: 0)
Run Code Online (Sandbox Code Playgroud)

  • 使用Swift 3更优雅:`edgesForExtendedLayout = []` (4认同)
  • 在我的简单`UITableView`上工作.问题源于我的`UITableView`位于`UINavigationController`内的`UIViewController`,导致表内容下降44点,因此初始内容不在'navBar`之后.虽然我的布局不需要这样,但它只是引起了问题.最终我将我的代码更改为`automaticAdjustsScrollViewInsets`,它也有效. (3认同)

nvr*_*rst 171

尝试更改继承的contentInset属性.UITableViewUIScrollView

self.tableView.contentInset = UIEdgeInsetsMake(-20, 0, 0, 0);
Run Code Online (Sandbox Code Playgroud)

这是一种解决方法,但它确实有效

  • `contentTableView.contentInset = UIEdgeInsetsMake(-20,0,-20,0);`对我来说效果最好,因为顶部和底部有20个额外的像素. (6认同)
  • 完全破解,但 iOS 很垃圾,所以你能做什么。 (2认同)

小智 133

self.automaticallyAdjustsScrollViewInsets = NO;
Run Code Online (Sandbox Code Playgroud)

试试,你可以处理它!

  • 如果您使用tableHeaderView,它将无法正常工作. (5认同)
  • 重要提示:确保在容器视图控制器中执行此操作,如果您的UITableView放置在控制器上,然后嵌入到另一个控制器中,请在嵌入式顶部控制器中执行此操作,而不是直接放置在UITableView的位置(AutoLayout将在其中)照顾好事情). (3认同)
  • 这在 iOS 11.0 中已被弃用。Xcode 会对此发出警告。在您不希望自动调整插图的滚动视图上使用此选项:`self.tableView.contentInsetAdjustmentBehavior = .never` (2认同)

Lev*_*dze 94

iOS 15 的解决方案:

if #available(iOS 15.0, *) {
  tableView.sectionHeaderTopPadding = 0
}
Run Code Online (Sandbox Code Playgroud)

要修复整个项目:

if #available(iOS 15.0, *) {
    UITableView.appearance().sectionHeaderTopPadding = 0
}
Run Code Online (Sandbox Code Playgroud)

更多细节:iOS 15 中表格视图标题上方的额外填充

注意:这仅适用UITableView.Style.plain.

  • 这可是纯金啊! (2认同)

Lig*_*Man 74

你可以检测你的应用程序是否运行iOS7或更高版本,并在表视图委托中添加这两个方法(通常在你的UIViewController代码中)

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    return CGFLOAT_MIN;
}

-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
    return CGFLOAT_MIN;
}
Run Code Online (Sandbox Code Playgroud)

这可能不是一个优雅的解决方案,但对我有用

Swift版本:

override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return CGFloat.leastNormalMagnitude
}

override func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
    return CGFloat.leastNormalMagnitude
}
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用CGFLOAT_MIN而不是0.001,它为您提供CGFloat的最小绝对值. (5认同)
  • 这是正确的答案,因为真正的功能是填充只存在于分组样式表视图中,如果指定页眉/页脚则忽略 (2认同)

esi*_*ver 52

我找到了原始bug的原因并创建了一个展示它的示例项目.我相信有一个iOS7错误.

从iOS7开始,如果您使用Grouped样式创建UITableView,但在第一个布局上没有设置委托,那么您设置委托并调用reloadData,顶部将有一个35px的空间永远不会消失.

看到我做的这个项目展示了这个bug:https://github.com/esilverberg/TableViewDelayedDelegateBug

特别是这个文件:https://github.com/esilverberg/TableViewDelayedDelegateBug/blob/master/TableViewDelayedDelegateBug/ViewController.m

如果第24行有效,

[self performSelector:@selector(updateDelegate) withObject:nil afterDelay:0.0];
Run Code Online (Sandbox Code Playgroud)

顶部会有额外的35像素空间.如果第27行处于活动状态且24被注释掉,

self.tableView.delegate = self;
Run Code Online (Sandbox Code Playgroud)

顶部没有空间.这就像tableView在某处缓存结果而不是在设置委托并调用reloadData后重绘自身.

  • 我想补充一点,即使有一个委托,但是委托的`tableView:heightForHeaderInSection:`和`tableView:heightForFooterInSection:`返回0,你也会遇到这个问题.实现上面的协议方法并返回0.01f为我修复它. (21认同)
  • 设置 header 的预计高度对我有帮助 (2认同)

小智 49

取消选中"调整滚动视图插入内容"

在此输入图像描述


Mik*_*ill 45

另一个快速评论......即使在XCode 6.1中,也存在一个垂直空间出现在顶部的错误UIScrollViews,UITextViewsUITableViews.

在此输入图像描述

有时,解决此问题的唯一方法是进入故事板并拖动问题控件,使其不再是页面上的第一个子视图.

在此输入图像描述

(感谢Oded指点我这个方向......我发布这条评论,只是为了添加一些截图,以展示症状和解决方法.)

  • 100万谢谢你!这是唯一对我有用的解决方案. (4认同)

gir*_*_vr 40

根据Apple的iOS7过渡指南,滚动视图的内容插入会自动调整.automaticAdjustsScrollViewInsets的默认值设置为YES.

具有UITableView的UIViewController应将此属性设置为NO.

self.automaticallyAdjustsScrollViewInsets = NO;
Run Code Online (Sandbox Code Playgroud)

这样就可以了.

编辑1:

也可以试试 -

self.navigationController.navigationBar.translucent = YES;
Run Code Online (Sandbox Code Playgroud)

这也消除了顶部的额外填充.


Aqi*_*taz 38

While using grouped TableView use this to avoid border cutting in viewWillAppear

self.tableView.contentInset = UIEdgeInsetsMake(-35, 0, 0, 0);
Run Code Online (Sandbox Code Playgroud)


Aur*_*rte 35

以上很多以前的答案太过于苛刻.如果Apple决定解决这一意想不到的行为,他们将来会在任何时候破产.

问题的根源:

  1. a UITableView不喜欢高度为0.0的标题.如果你要做的是拥有一个高度为0的标题,你可以跳转到解决方案.

  2. 即使稍后您为标题指定了非0.0高度,UITableView也不希望首先为其指定高度为0.0的标题.

解:

然后,最简单可靠的修复是确保在将表头视图分配给表视图时标题高度不为0.

像这样的东西会起作用:

// Replace UIView with whatever class you're using as your header below:
UIView *tableViewHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, self.tableView.bounds.size.width, CGFLOAT_MIN)];
self.tableView.tableHeaderView = tableViewHeaderView;
Run Code Online (Sandbox Code Playgroud)

这样的事情会在某些时候导致问题(通常在滚动之后):

// Replace UIView with whatever class you're using as your header below:
UIView *tableViewHeaderView = [[UIView alloc] initWithFrame:CGRectZero];
self.tableView.tableHeaderView = tableViewHeaderView;
Run Code Online (Sandbox Code Playgroud)


Bar*_*zyk 29

故事板:

只需取消选中:Adjust Scroll View Insets在View Controller的选项中

在此输入图像描述

码:

self.automaticallyAdjustsScrollViewInsets = false
Run Code Online (Sandbox Code Playgroud)

  • 使用xcode 7我看不到属性检查器>布局,我应该在哪里添加self.automaticallyAdjustsScrollViewInsets = false (2认同)

And*_*kas 21

这是使用Swift 3的iOS 10的解决方案:

您可以通过实现以下方法来摆脱顶部和底部填充UITableViewDelegate.

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat
{ 
    return CGFloat.leastNormalMagnitude
}

func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat
{
   return CGFloat.leastNormalMagnitude
}
Run Code Online (Sandbox Code Playgroud)


Luk*_*kas 14

就我而言,这对我有所帮助.我也支持ios6.

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
    self.edgesForExtendedLayout = UIRectEdgeNone;
    self.extendedLayoutIncludesOpaqueBars = NO;
    self.automaticallyAdjustsScrollViewInsets = NO;
}
Run Code Online (Sandbox Code Playgroud)


jud*_*ira 14

只需将以下内容添加到VC中的viewDidLoad:

self.automaticallyAdjustsScrollViewInsets = NO;
Run Code Online (Sandbox Code Playgroud)


sun*_*ejr 14

所以我在这里尝试了所有方法,而这一次都没有帮助.我的情况是在iOS 9上的分组表格视图.我真的不知道为什么以及如何找到这个,但对我来说,设置至少高度的tableViewHeadera .没有帮助,没有任何帮助:UIView0.01CGRectZero

tableView.tableHeaderView = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 0.0, height: 0.01))
Run Code Online (Sandbox Code Playgroud)


Vip*_*mar 14

这段代码对我有用,对我来说最好的答案是在上面写的,objective-C所以我把它转换成 Swift。

对于 Swift 4.0+

self.tableView.tableHeaderView = UIView(frame: CGRect(x: 0, y: 0, width: self.tableView.bounds.size.width, height: .leastNonzeroMagnitude))
Run Code Online (Sandbox Code Playgroud)

只需将其写入其中viewDidLoad(),它就会像魅力一样发挥作用。


Vin*_*shi 10

Swift:iOS我在滚动视图上有tableview ..当我在同一个屏幕上点击"Back"时.滚动视图在顶部占用更多空间..解决这个我用过:

 self.automaticallyAdjustsScrollViewInsets = false
Run Code Online (Sandbox Code Playgroud)

一个布尔值,指示视图控制器是否应自动调整其滚动视图插入.默认值为true,允许视图控制器调整其滚动视图插入以响应状态栏,导航栏和工具栏或选项卡栏消耗的屏幕区域.如果要自己管理滚动视图插入调整,则设置为false,例如在视图层次结构中有多个滚动视图时.


Ash*_*sey 10

感谢@Aurelien Porte的回答.这是我的解决方案

这个问题的原因: -

  1. UITableView不喜欢高度为0.0的标题.如果你要做的是拥有一个高度为0的标题,你可以跳转到解决方案.
  2. 即使稍后您为标题指定了非0.0高度,UITableView也不希望首先为其指定高度为0.0的标题.

在ViewDidLoad中: -

self.edgesForExtendedLayout = UIRectEdge.None

self.automaticallyAdjustsScrollViewInsets = false
Run Code Online (Sandbox Code Playgroud)

不需要这样的东西: -

self.myTableview.contentInset = UIEdgeInsetsMake(-56, 0, 0, 0)
Run Code Online (Sandbox Code Playgroud)

heightForHeaderInSection代表中: -

if section == 0
    {
        return 1
    }
    else
    {
        return 40; // your other headers height value
    }
Run Code Online (Sandbox Code Playgroud)

viewForHeaderInSection代表中: -

if section == 0 
{  
   // Note CGFloat.min for swift
   // For Objective-c CGFLOAT_MIN 
   let headerView = UIView.init(frame: CGRectMake(0.0, 0.0, self.myShaadiTableview.bounds.size.width, CGFloat.min)) 
   return headerView
}
else
{ 
   // Construct your other headers here 
}
Run Code Online (Sandbox Code Playgroud)


Kev*_*vin 9

我认为这只是新UITableViewStyleGrouped造型的一部分.它位于所有分组表视图中,似乎没有任何直接的方法来控制该空间.

如果该空间由a表示UIView,则可以搜索所有subviews这些空间UITableView以查找该特定视图并直接编辑它.但是,在标题和单元格开始之前,该空间也可能只是一个硬编码的偏移量,并且没有任何方法可以对其进行编辑.

要搜索所有子视图(我会在表没有单元格时运行此代码,以使其更容易阅读输出):

- (void)listSubviewsOfView:(UIView *)view {

    // Get the subviews of the view
    NSArray *subviews = [view subviews];

    // Return if there are no subviews
    if ([subviews count] == 0) return;

    for (UIView *subview in subviews) {

        NSLog(@"%@", subview);

        // List the subviews of subview
        [self listSubviewsOfView:subview];
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 如果iOS7上的UITableViews(更具体的是"UITableViewCellScrollView")告诉我们一件事,那就是单独留下内置类的视图层次结构. (3认同)

zvj*_*a24 9

我的答案将是更一般的答案,但也可以应用于此.

如果根视图(ViewController)或根视图第一个子视图(子视图)是UIScrollView(或UIScrollView本身)的子类,如果

self.navigationController.navigationBar.translucent = YES;
Run Code Online (Sandbox Code Playgroud)

框架将自动设置预先计算的contentInset.


为了避免这种情况你可以做到

self.automaticallyAdjustsScrollViewInsets = NO;
Run Code Online (Sandbox Code Playgroud)

但在我的情况下,我无法做到这一点,因为我正在实现具有UIView组件的SDK,可供其他开发人员使用.该UIView组件包含UIWebView(其中UIScrollView作为第一个子视图).如果将该组件添加为UIViewController视图层次结构中的第一个子组件,则系统将应用自动插入.

我在添加UIWebView之前通过添加带有框架(0,0,0,0)的虚拟视图来修复此问题.

在这种情况下,系统没有找到UIScrollView的子类作为第一个子视图,并且没有应用insets


Kum*_*Lav 9

这行代码会让你高兴的。

override func viewDidLoad() {
        super.viewDidLoad()
        if #available(iOS 15.0, *) {
            tableView.sectionHeaderTopPadding = CGFloat(0)
        }
    }
Run Code Online (Sandbox Code Playgroud)


Sae*_* Ir 8

这是通过Storyboard在iOS 11和Xcode 9.1中轻松修复的方法:

选择"表视图">"大小检查器">"内容插入:从不"


Ode*_*ded 7

我和arielyz有同样的解决方法.一旦我将UITableView移动到不是父视图的第一个子视图,它就消失了.我的空间是20像素,而不是35像素.

我无法在肖像xib中重新创建它,只有一个风景xib.如果我可以在一个简单的演示应用程序中重现它,我将在稍后提交雷达错误.


Jia*_* Du 7

我认为制作UIEdgeInsets -35 0 0 0很乏味.在我的例子中,我实现了tableView:heightForHeaderInSection:方法,它有可能返回0.

当我将0改为0.1f时,问题就消失了.


Lor*_*rik 6

我刚刚从 中删除再次创建它,奇怪的 35px 消失了。UITableViewInterface Builder

中似乎有一个奇怪的错误Interface Builder


小智 6

使用这一个我认为这有帮助......

 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
 {
    return 0.005f;// set this according to that you want...
 }
Run Code Online (Sandbox Code Playgroud)


A.G*_*A.G 6

override func viewWillAppear(animated: Bool) {
        self.edgesForExtendedLayout = UIRectEdge.None

 //  OR

self.sampleTableView.contentInset = UIEdgeInsetsMake(-64, 0, 0, 0);

   //OR

 self.automaticallyAdjustsScrollViewInsets = false
        }
Run Code Online (Sandbox Code Playgroud)


Han*_*ney 6

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{

    return CGFLOAT_MIN;
}
Run Code Online (Sandbox Code Playgroud)

这就是所有人!


Dan*_*lea 6

唯一对我有用的是:

斯威夫特:

tableView.sectionHeaderHeight = 0
tableView.sectionFooterHeight = 0
Run Code Online (Sandbox Code Playgroud)

Objective-C:

self.tableView.sectionHeaderHeight = 0;
self.tableView.sectionFooterHeight = 0;
Run Code Online (Sandbox Code Playgroud)

另外,第一部分还有一个额外的空间.那是因为我tableHeaderView错误地使用了这个属性.修正了以下内容:

self.tableView.tableHeaderView = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.size.width, height: 0.01))
Run Code Online (Sandbox Code Playgroud)


小智 6

我们有多个答案.

1)您可以在view didload添加UIImageview

UIImageView * imbBackground = [UIImageView new];
[self.view addSubview:imbBackground];
Run Code Online (Sandbox Code Playgroud)

2)您可以设置页眉和页脚高度0.1

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
    return 0.1;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
    return 0.1;
}
Run Code Online (Sandbox Code Playgroud)

3)您可以添加高度为0.1的页眉和页脚视图

tblCampaigns.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, tblCampaigns.bounds.size.width, 0.01f)];
tblCampaigns.tableFooterView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, tblCampaigns.bounds.size.width, 0.01f)];
Run Code Online (Sandbox Code Playgroud)


小智 6

Swift 4代码:对于没有节头的tableview,您可以添加以下代码:

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return CGFloat.leastNormalMagnitude
}
Run Code Online (Sandbox Code Playgroud)

并将标题空间设置为0。

如果您想要特定身高的标头,请传递该值:

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return header_height
}
Run Code Online (Sandbox Code Playgroud)

以及来自viewForHeaderinSection委托的视图。


use*_*832 6

具体来说,要从顶部删除tableviewHeader空间,我做了以下更改:

YouStoryboard.storyboard> YouViewController>选择TableView>大小检查器>内容插入 - 将其设置为never.

在此输入图像描述


Fat*_*tie 6

2019年答案:

你只要这样做

tableView.contentInsetAdjustmentBehavior = .never
Run Code Online (Sandbox Code Playgroud)

奇怪的微妙gotchya - >

这些天表视图有一个非常奇怪的行为:

  1. 在带有缺口(XR 等)的设备上,它不会告诉您添加更多插图,但前提是表格从屏幕的物理顶部开始。

  2. 如果你不是从屏幕顶部开始,它不会那样做,但是

  3. 这两种情况都 >> 无关 << to safeAreaInsets....... 这很令人困惑

所有这些都是完全没有记录的......你可以浪费几个小时来弄清楚这一点。

如果您确实需要从屏幕/表格顶部开始实际测量,

实际上只需去:

tableView.contentInsetAdjustmentBehavior = .never
Run Code Online (Sandbox Code Playgroud)

一个很好的例子显然是当您在桌子顶部添加某种横幅或类似的东西时,这在当今很常见,并且您只需将桌子的顶部插入设置为您的横幅/等在运行时的高度。

为此,您必须使用

tableView.contentInsetAdjustmentBehavior = .never
Run Code Online (Sandbox Code Playgroud)

称呼 :/

奖金陷阱

不要忘记,现在几乎总是在动态加载一些信息(用户图片、描述等),因此在信息到达之前您无法将这些值设置为最终需要的值。另一个陷阱。:/

所以你会有这样的代码:

func setTableOffsetOnceFlagAreaSizeIsKnown() {
    tableView.contentInset.top = yourSpecialFlagViewUpTop.bounds.height
}

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    setTableOffsetOnceFlagAreaSizeIsKnown()
}
Run Code Online (Sandbox Code Playgroud)


小智 5

斯威夫特3

如果您使用分组表,请执行以下操作。这将删除顶部空间。

    var frame = CGRect.zero
    frame.size.height = .leastNormalMagnitude
    self.tableView.tableHeaderView = UIView(frame: frame)
    self.tableView.tableFooterView = UIView(frame: frame)
Run Code Online (Sandbox Code Playgroud)

如果您仍然遇到此问题,那么默认情况下它将删除从顶部偏移的内容。

[从不设置内容插入]
https://i.stack.imgur.com/fjxOV.png


F. *_*les 5

Swift 4 answer...

If the table view is selected in interface builder and in the attributes inspector the style "Grouped" is selected, enter the following code in your view controller to fix the extra header space issue.

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return CGFloat.leastNonzeroMagnitude
}
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

242137 次

最近记录:

5 年,11 月 前