2013-12-19 2 views
0

У меня есть UITableView, чтобы показать целую кучу слов из массива.Прокрутка UITableView никогда не заканчивается после поиска

Я также предоставляю строку поиска сверху таблицы, поэтому, когда люди вводят слово в поиске в текстовом поле, тогда мой код начинает фильтровать данные из массива.

Мой результат хорош, но мой свиток в виде таблицы никогда не заканчивается, хотя есть только одна строка. Мой результат таблицы может прокручиваться вниз и вниз без строки.

Я не знаю, что происходит с моим столом.

Мой код, который я реализую.

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    if(self.tableView == tableView){ 
     return [self.alphabet count]; 
    }else{ 
     return 1; 
    } 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    if (self.tableView == tableView) { 
     return [[self.vocabularyInfo objectAtIndex:section] count]; 
    }else{ 
     return [self.filteredVocabs count]; 
    } 
} 
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section 
{ 
    return [self.alphabet objectAtIndex:section]; 
} 

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView 
{ 
    if(self.tableView == tableView){ 
     return self.alphabet; 
    }else{ 
     return nil; 
    } 
} 

// Выводит клетка

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSString *cellIdentifier = @"CommentTableCell"; 
    //-- try to get a reusable cell -- 
    CommentTableCell *cell = (CommentTableCell *) [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 
    //-- create new cell if no reusable cell is available -- 
    if (cell == nil) 
    { 
     NSArray *nib = [[NSBundle mainBundle] loadNibNamed:cellIdentifier owner:self options:nil]; 
     cell = [nib objectAtIndex:0]; 
    } 

    VocabularyController *vc; 

    // Display word from database else display vocabulary when searching 
    if (tableView != self.searchDisplayController.searchResultsTableView) { 
     vc = [self.vocabularyInfo[indexPath.section] objectAtIndex:indexPath.row]; 
    }else{ 
     vc = [self.filteredVocabs objectAtIndex:indexPath.row]; 
    } 

    cell.nameLabel.text = vc.korean; 

    return cell; 
} 

// Моего метод, который я использовал для фильтрации моего массива для отображения результата

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString{ 
    if (searchString.length > 0) { 
     NSArray *vocabToSearch = self.vocabularyInfo; 
     if (self.currentSearchString.length > 0 && [searchString rangeOfString:self.currentSearchString].location == 0) { 
      vocabToSearch = self.filteredVocabs; 
     } 
     NSPredicate *predicate = [NSPredicate predicateWithFormat:@"korean CONTAINS[cd] %@", searchString]; 
     self.filteredVocabs = [vocabToSearch filteredArrayUsingPredicate:predicate]; 
    } else { 
     self.filteredVocabs = self.vocabularyInfo; 
    } 
    self.currentSearchString = searchString; 

    return YES; 
} 

Пожалуйста, помогите мне !!

ответ

0

Проверьте функцию делегата datasource таблицы tableview. Возможно, более подробная информация о вашей реализации полезна.

+0

я проверил уже. Я провел почти 2 дня назад. Ничто не может помочь. Это из-за uitableview, который работает на iOS 7? –

+0

Можете ли вы добавить код? –

+0

Я обновил свой код выше, пожалуйста, посмотрите. Спасибо –

0

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

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
+0

Я уже проверил. Мой результат был всего в одной строке. Тем не менее моя таблица может прокручивать вниз и вниз примерно на 10 строк, а затем больше нет ячейки, а только на белом экране. Итак, как его решить! –

Смежные вопросы