После перезагрузки моего tableView с контентом, он все еще отображается серым, пока я не коснусь его. Почему? - PullRequest
0 голосов
/ 26 ноября 2010

После получения результатов поиска из UISearchBar результаты отображаются в моем табличном представлении правильно, но представление «серое» (см. Изображение ниже). Любая помощь по этому вопросу приветствуется, я не могу найти решение Apple документация.

Это мой код, который срабатывает при нажатии кнопки поиска:

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
isSearchOn = YES;
canSelectRow = YES;
self.tableView.scrollEnabled = YES;

CityLookup *cityLookup = [[CityLookup alloc] findCity:searchBar.text];

if ([cityLookup.citiesList count] > 0) {
    tableCities = cityLookup.citiesList;
}

[cityLookup release];

isSearchOn = NO;

self.searchBar.text=@"";

[self.searchBar setShowsCancelButton:NO animated:YES];
[self.searchBar resignFirstResponder];
[self.navigationController setNavigationBarHidden:NO animated:YES];

    [self.tableView reloadData];

}

И вот как обновляется табличное представление:

-(UITableViewCell *)tableView:(UITableView *)tableView
    cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *kCellID = @"cellID";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellID];
if (cell == nil)
{
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kCellID] autorelease];
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}

NSString *cellValue = [tableCities objectAtIndex:indexPath.row];



cell.textLabel.text = cellValue;
    return cell;
}

alt text

Ответы [ 2 ]

0 голосов
/ 27 ноября 2010

Если вы используете полный пакет с UISearchDisplayController, следующая строка должна удалить интерфейс поиска:

[self.searchDisplayController setActive:NO animated:YES];

Если вы не используете UISearchDisplayController, я бы порекомендовал проверить его и посмотреть,это не соответствует вашим потребностям.

Примечание. В опубликованном вами коде нет ничего, что могло бы удалить то представление, которое вы использовали для серого представления таблицы.Так что, если вы не используете UISearchDisplayController, посмотрите в коде, который отображает интерфейс поиска, чтобы увидеть, что вам нужно сделать, чтобы удалить его.

0 голосов
/ 26 ноября 2010

Вы не скрываете панель поиска при нажатии поиска, попробуйте:

[self.navigationController setNavigationBarHidden:YES animated:YES];
...