gpt4 book ai didi

ios - 带有右侧索引、部分和搜索栏的 UITableView 导致右侧索引被压扁

转载 作者:行者123 更新时间:2023-11-28 17:42:41 24 4
gpt4 key购买 nike

我有一个带有部分、搜索栏和右侧索引的 UITableView。最初,一切正常并且绘制正确。但是,当我输入搜索栏然后单击取消时,正确的索引未正确重绘。这是我单击“取消”按钮后索引的样子。

Squished Index

这是正常的:

Normal

[更新]

出于某种原因,我需要使用此方法来让我的表 reloadData 工作:

-(void)searchBarTextDidEndEditing:(UISearchBar *)searchBar { ...}

代替这种方法:

-(void)searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller { ...}

这是我的方法:

/* Reset Table here */-(void)searchBarTextDidEndEditing:(UISearchBar *)searchBar {    NSLog(@"\n===searchBarTextDidEndEditing");    self.isFiltered = NO;    self.tableView = self.myTableView;    [self genIndexWithFilter:NO];    [self.tableView reloadData];}

如果有人可以解释微妙的细节,我会投票并接受他们的回答。

最佳答案

假设您的 self.isFiltered bool 值是控制将哪组数据呈现到屏幕的变量;完整列表或经过优化的搜索集。

当调用 -(void)searchBarTextDidEndEditing:(UISearchBar *)searchBar { ...} 时,设置了 self.isFiltered 标志,您可以通过以下方式重新加载表格. [self.tableView reloadData]; 重新加载表格,检查您是否正在呈现过滤后的数据。

同样,当 reloadData 被调用时,它会检查要渲染的部分。如果做得正确,你可以得到这样的东西......

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {

if(self.isFiltered) //If searching
return nil; //Return empty section
else
return sectionSelectionArray; //Return list of headers
}

关于ios - 带有右侧索引、部分和搜索栏的 UITableView 导致右侧索引被压扁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7543554/

24 4 0