我有一个可搜索的tableview,但是只想显示用户开始搜索后返回的单元格数。例如,如果用户键入charecter并且只有一个单元格与搜索匹配,则剩余单元格表格的剩余单元格为空。我想知道是否有办法隐藏那些空单元格。我还想知道如果一个人的搜索与任何数据都不匹配,是否有办法隐藏表格视图(默认情况下,它会显示一个空单元格表,表示“无结果”)。
感谢。
答案 0 :(得分:61)
将tableFooterView
设置为某个虚拟视图([[UIView new] autorelease]
将正常工作)。这会提示UITableView
显示页脚(其大小为零)以代替空的“单元格”。
答案 1 :(得分:23)
- (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] ;
}
答案 2 :(得分:5)
更改数据源中tableView:numberOfRowsInSection:
的实施,以返回搜索结果的数量,而不是项目总数。然后使用搜索结果而不是其余数据填充这些单元格。
答案 3 :(得分:0)
简单你可以使用它..
tableView.tableFooterView = [UIView new];
答案 4 :(得分:0)
对于swift 2.x xCode 7:
override func viewDidLoad() {
super.viewDidLoad()
print("∙ \(NSStringFromClass(self.dynamicType))")
...
self.tableView.tableFooterView = UIView()
}
答案 5 :(得分:0)
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (([array count]*65) > [UIScreen mainScreen].bounds.size.height - 66)
{
Table.frame = CGRectMake(0, 66, self.view.frame.size.width, [array count]*65));
}else
{
Table.frame = CGRectMake(0, 66, self.view.frame.size.width, [UIScreen mainScreen].bounds.size.height - 66);
}
return [array count];
}
这里65是单元格的高度,66是UIViewController中导航栏的高度。
答案 6 :(得分:0)
对于xcode中的swift
cell.userInteractionEnabled = false
将其放在单元格的末尾,用于表格索引处的行
答案 7 :(得分:0)
在Swift中隐藏空单元格
Swift 3 Edition
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.tableView.tableFooterView = UIView(frame: CGRect.zero)
}
Swift 2 Edition
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.tableView.tableFooterView = UIView(frame: CGRectZero)
}