У меня проблема в моем проекте iOS. Я использую панель поиска для фильтрации моего массива в своем пользовательском представлении таблицы, чтобы отображать соответствующие ключевые слова для поиска.Панель поиска, показывающая неправильные/смешанные результаты ячейки
Он не показывает ошибок кода, но, очевидно, есть проблема.
Обычно в моем представлении таблицы более 20 элементов, но когда я выполняю поиск, в нем отображается только первая ячейка, которую обычно имеет мой рабочий стол, без поиска, то же изображение для этой ячейки, если быть точным, но это не та же ячейка, каждая ячейка имеет кнопку, показывающую конкретную информацию через метку в этой ячейке. Поэтому, когда я выполняю поиск и результат получается, он показывает изображение, которое имеет первая ячейка в таблице, но с меткой или информацией о правильной ячейке или соответствующей ячейке.
Я не знаю, что это может быть. Возможно, это сохраняет изображение первой ячейки, потому что это пользовательская ячейка tableview, и по какой-то причине она не фильтрует правильное изображение. Но странная часть, что это правильная ячейка, которая отображается, потому что отображается конкретная метка, которую показывает каждая ячейка, а не метка, которую имеет первая ячейка с изображением первой ячейки. Надеюсь, у меня есть смысл.
Код:
numberOfRowsInSection
if (isFiltered) {
return [filteredGamesArray count];
}
return [gamesArray count];
cellForRowAtIndexPath
Game * gameObject;
if (!isFiltered) {
gameObject = [gamesArray objectAtIndex:indexPath.row];
}
else {
gameObject = [filteredGamesArray objectAtIndex:indexPath.row];
}
return cell;
SearchBar textDidChange
if (searchText.length == 0) {
isFiltered = NO;
} else {
isFiltered = YES;
filteredGamesArray = [[NSMutableArray alloc] init];
for (Game *game in gamesArray) {
NSString *str = game.gameName;
NSRange stringRange = [str rangeOfString:searchText options:NSCaseInsensitiveSearch];
if (stringRange.location != NSNotFound) {
[filteredGamesArray addObject:game];
}
}
}
[myTableView reloadData];
Кроме того, я не сохраняю никаких изображений или текста в своем приложении. Я получаю всю информацию, которая заполняет ячейку tableview с сервера, используя json/php/mysql, с изображениями, в которых я использую URL.
Мне что-то не хватает. Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.
cellForRowAtIndexPath
// Loading Images
NSURL * imgURL = [[gamesArray objectAtIndex:indexPath.row] valueForKey:@"gameURL"];
[cell.myImageView setContentMode:UIViewContentModeScaleAspectFit];
[cell.myImageView sd_setImageWithURL:imgURL placeholderImage:[UIImage imageNamed:@"no-image.jpg"] options:SDWebImageRefreshCached];
Я предлагаю вам использовать «предикат» для фильтрации – Wolverine
ли вы получить результат в filteredGamesArray массиве, a searchBar textDidChange –
yes мои результаты в отфильтрованномGamesArray – BroSimple