Iphone 在UITableView中隐藏空单元格

Iphone 在UITableView中隐藏空单元格,iphone,objective-c,uitableview,uisearchbar,Iphone,Objective C,Uitableview,Uisearchbar,我有一个可搜索的tableview,但只想显示用户开始搜索后返回的单元格数。例如,如果用户键入字符,并且只有一个单元格与搜索匹配,则表中的其余单元格为空。我想知道是否有办法隐藏那些空牢房。我还想知道,如果一个人的搜索与任何数据都不匹配,是否有办法隐藏表视图(默认情况下,它显示一个空单元格表,上面写着“无结果”) 谢谢 更改数据源中表视图:numberOfRowsInSection:的实现,以返回搜索结果的数量而不是项目总数。然后用搜索结果而不是剩余的数据填充这些单元格。将表格页脚视图设置为某个虚

我有一个可搜索的tableview,但只想显示用户开始搜索后返回的单元格数。例如,如果用户键入字符,并且只有一个单元格与搜索匹配,则表中的其余单元格为空。我想知道是否有办法隐藏那些空牢房。我还想知道,如果一个人的搜索与任何数据都不匹配,是否有办法隐藏表视图(默认情况下,它显示一个空单元格表,上面写着“无结果”)


谢谢

更改数据源中
表视图:numberOfRowsInSection:
的实现,以返回搜索结果的数量而不是项目总数。然后用搜索结果而不是剩余的数据填充这些单元格。

表格页脚视图设置为某个虚拟视图(
[[UIView new]autorelease]
可以正常工作)。这将提示
UITableView
显示页脚(大小为零)以代替空的“单元格”。

简单您可以使用此选项

- (void) viewDidLoad
{
  [super viewDidLoad];
 *// self.tableView.tableFooterView = [[[UIView alloc] init] autorelease];*   
  *//Since memory management is controlled by ARC now, so ignore autorelease*
  self.tableView.tableFooterView = [[UIView alloc] init] ;
}
tableView.tableFooterView = [UIView new];

对于swift 2.x xCode 7:

override func viewDidLoad() {
        super.viewDidLoad()
        print("∙ \(NSStringFromClass(self.dynamicType))")
        ...
        self.tableView.tableFooterView = UIView()
}

这里65是单元格的高度,66是UIViewController中导航栏的高度。

在Swift中隐藏空单元格

Swift 3版

 override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    self.tableView.tableFooterView = UIView(frame: CGRect.zero)
}
 override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)

    self.tableView.tableFooterView = UIView(frame: CGRectZero)
}
Swift 2版

 override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    self.tableView.tableFooterView = UIView(frame: CGRect.zero)
}
 override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)

    self.tableView.tableFooterView = UIView(frame: CGRectZero)
}

@代码瘾君子——我还没试过;应该可以正常工作,但您不需要自动释放。@TomSwift这样做时,同样的代码会抱怨,我想需要在iOS5中查找更多要替换的内容autorelease@codejunkie-如果使用ARC,则不会自动释放。只需使用[UIView new]@TomSwift ok我看到了默认情况下由视图创建的隐藏单元格”,但“它没有隐藏我的主要问题,因为我有一些可选择但没有内容的空单元格。我如何隐藏它们?我为此提出了一个新问题。这里提出的问题:self.tableView.tableFooterView=[[UIView alloc]init];工作,但我得到了一个错误与自动释放(自动释放是不可用的:在自动引用计数模式不可用)我已经更新了答案,希望它更容易理解。