我有一个带搜索栏的表格。使用搜索栏似乎很好,直到滚动到结果的底部。我会尽力解释。
假设我有一个包含1000个对象的数据表,并在搜索栏中输入“w”。显示以字母“w”开头的25个对象。我点击进入表格,可以向上和向下滚动这25个对象。但是,当我到达底部并尝试滚动到最后一个对象时,位于顶部静止的搜索栏开始向上滚动并消失,显示这些25'w'对象的“重复”表。
我可以将第一张桌子放在屏幕的上半部分,将第二张桌子放在下半部分,然后分别向上和向下滚动。这真的很奇怪。我不知道我应该使用哪些代码,但如果有人有想法,我会很乐意发帖。
滚动到不可搜索表格底部时不会出现此现象。
这是一系列图像,试图澄清问题。 pics
搜索栏回调:
- (void)searchBar:(UISearchBar *)theSearchBar textDidChange:(NSString *)searchText {
[searchResult removeAllObjects];
if ([searchText length] > 0) {
isSearchOn = YES;
canSelectRow = YES;
self.tableView.scrollEnabled = YES;
[self searchTableView];
}
else {
isSearchOn = NO;
canSelectRow = YES;
self.tableView.scrollEnabled = NO;
}
[self.tableView reloadData];
}
- (void) searchTableView {
NSString *sTemp = nil;
NSArray *tempSectionArray = nil;
NSArray *tempEnglishArray = nil;
NSString *firstLetter = [searchBar.text substringToIndex:1];
//--- Only including W
if ([firstLetter isEqualToString:@"W"] ||
[firstLetter isEqualToString:@"w"]) {
tempSectionArray = [NSArray arrayWithArray:[self.listSortByIndex objectAtIndex:23]];
tempEnglishArray = [NSArray arrayWithArray:[self.listEnglish objectAtIndex:23]];
}
for (int i = 0; i < [tempEnglishArray count]; i++) {
sTemp = [tempEnglishArray objectAtIndex:i];
NSRange titleResultsRange = [sTemp rangeOfString:searchBar.text options:NSCaseInsensitiveSearch];
if (titleResultsRange.length > 0)
[searchResult addObject:[tempSectionArray objectAtIndex:i]];
}
}