如何在UITableView中删除空单元格?

z22*_*z22 346 objective-c uitableview ios

我试图UITableView用一些数据显示一个简单的.我希望设置静态高度,UITableView以便它不会在表的末尾显示空单元格.我怎么做?

码:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    NSLog(@"%d", [arr count]);
    return [arr count];
}
Run Code Online (Sandbox Code Playgroud)

And*_*ndy 860

设置零高度表页脚视图(可能在您的viewDidLoad方法中),如下所示:

迅速:

tableView.tableFooterView = UIView()
Run Code Online (Sandbox Code Playgroud)

Objective-C的:

tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
Run Code Online (Sandbox Code Playgroud)

因为该表认为有一个页脚显示,它不会显示任何超出您明确要求的单元格.

界面构建器专题提示:

如果您使用的是xib/Storyboard,只需将UIView(高度为0pt)拖到UITableView的底部即可.

  • SWIFT 2.0:`self.tableView.tableFooterView = UIView(frame:CGRectZero)` (9认同)
  • @ Jupiter869我只是把它放在ViewDidLoad中就可以了 (2认同)
  • 将0高度视图添加到故事板中任何单元格下方的表视图中,可以完美地工作. (2认同)

Dus*_*ams 102

Swift 3语法:

tableView.tableFooterView = UIView(frame: .zero)
Run Code Online (Sandbox Code Playgroud)

Swift语法:<2.0

tableView.tableFooterView = UIView(frame: CGRect.zeroRect)
Run Code Online (Sandbox Code Playgroud)

Swift 2.0语法:

tableView.tableFooterView = UIView(frame: CGRect.zero)
Run Code Online (Sandbox Code Playgroud)

  • 短!`tableView.tablFooterView = UIView()` (4认同)
  • 它现在是tableView.tableFooterView = UIView(frame:CGRect.zero) (3认同)
  • 为了防止任何人感兴趣,Swift实际上让你更简洁:`tableView.tableFooterView = UIView(frame:.zero)` (3认同)

Gab*_*scu 63

在故事板中,选择UITableView,然后将属性样式从中修改PlainGrouped.

  • 但它增加了表格部分上方和下方的额外间距. (6认同)

小智 16

在Xcode 6.1上使用swift实现

self.tableView.tableFooterView = UIView(frame: CGRectZero)
self.tableView.tableFooterView?.hidden = true
Run Code Online (Sandbox Code Playgroud)

第二行代码不会对演示文稿产生任何影响,您可以使用它来检查是否隐藏.

从此链接中获取的答案 无法在UITableView Swift中隐藏空单元格


小智 11

我现在无法添加评论,因此将其添加为答案.

@Andy的回答很好,使用以下代码行可以获得相同的结果:

tableView.tableFooterView = [UIView new];
Run Code Online (Sandbox Code Playgroud)

'new'方法属于NSObject类,并且调用allocinit方法UIView.


小智 7

我试过这段代码:

tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
Run Code Online (Sandbox Code Playgroud)

viewDidLoad部分和xcode6中显示了警告.我放了一个"自我".在它面前,现在它工作正常.所以我使用的工作代码是:

self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
Run Code Online (Sandbox Code Playgroud)