Перейдите к TableViewHeader с помощью "tableView: sectionForSectionIndexTitle: atIndex:" help? - PullRequest
8 голосов
/ 09 августа 2011

Я добавил панель поиска в заголовок моего TableViewController, а также добавил "{search}" в массив "sectionIndexTitlesForTableView". Теперь на правой стороне я получил буквы алфавита + символ поиска сверху ... чтобы прокрутить разделы букв (не поле поиска), я использовал это:

- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index{

    return index -1;
}

теперь, когда я нажимаю букву А, она прокручивается до раздела А и так далее. Только я не могу сделать прокрутку "символа поиска" до строки поиска в заголовке tableView ...

Как я могу это сделать?

Заранее спасибо ...

enter image description hereenter image description here

Ответы [ 3 ]

10 голосов
/ 09 августа 2011

Если панель поиска находится в самом верху tableView, вы можете сделать что-то вроде -

- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index{

// as the search icon is at index 0, scroll to the top
    if(index == 0)    
        [tableView scrollRectToVisible:CGRectMake(0, 0, searchBar.width, searchBar.height) animated:YES];    
    return index -1;
}

Иначе, если это раздел без каких-либо строк, вы можете сделать -

CGRect searchBarRect = [tableView rectForSection:searchBarIndex];
[tableView scrollRectToVisible:searchBarRect animated:YES];

HTH,

Акшай

0 голосов
/ 31 августа 2012

Вы можете сделать это с помощью другого метода UITableView, как показано ниже:

- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index
{

    if (//this condition is apply for A-Z//) {

    }
    else { //--- This is for your Search symbol---//
        [tableView setContentOffset:CGPointMake(0, 0) animated:YES];
    } 
    return (return your desire section value i.e. 1);
}
0 голосов
/ 09 августа 2011

Вы имеете дело с XIB, если да, то переместите панель поиска вверх UITableView например

UIView // your main view  
  SearchBar
  UITableView

Хорошо, на самом деле ваш вопрос мне не был понятен, теперь, после того, как вы прокомментируете, я расширю свой ответ

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
      {
          // An array of strings that serve as the title of sections
      }

Этот метод источника данных просто просит источник данных вернуть заголовки разделов для табличного представления.

Я бы предложил вам обратиться

в соответствии с вашей фотографией, я снова буду придерживаться моего предыдущего ответа, основанного на проблеме юзабилити. почему вы не можете поставить панель поиска навсегда, она просто съест одну / две строки набора результатов ( хорошо, здесь я даю убедительное предложение - если вы разрешите пользователю перейти на панель поиска, нажав на Ваш searchicon не прост ( это очень маленький ) заголовок sectionIndex, как правило, пользователи не используют, и если они используют, они просто используют для прямого перехода к определенному разделу).

Надеюсь, мое предложение может быть хорошим ответом для вас.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...