Индекс раздела UITableView перекрывает панель поиска - PullRequest
10 голосов
/ 11 апреля 2010

Привет: я хочу отобразить индекс раздела в UITableView с панелью поиска в заголовке представления таблицы (не заголовок раздела). Но индексная полоса теперь перекрывает строку поиска. Есть ли элегантное решение, позволяющее избежать этого и позволить индексу начинаться ниже заголовка таблицы?

Ответы [ 2 ]

10 голосов
/ 26 августа 2010

Я понимаю, что этот ответ приходит очень поздно, но у меня была та же проблема, и я искал здесь и в других местах. Я нашел хорошие ответы здесь: Изменение размера текстового поля UISearchBar?

Есть несколько предложений, но наиболее простым, который я нашел, было поместить UISearchBar и UINavBar в UIView и передать это представление в setTableView. Проблема в том, что таблица контролирует размер представления заголовка, игнорируя любые добавленные вами настройки. Поэтому добавление представления делает таблицу счастливой, и вы можете войти внутрь и установить размер панели поиска без вмешательства со стороны таблицы. UINavBar имеет те же стили фона, что и UISearchBar, поэтому заполняет дополнительное пространство визуально согласованным способом, хотя Вы должны настроить его - см. ниже:

UISearchBar searchBar = [[[UISearchBar alloc] initWithFrame:CGRectMake(0, 1, 290, 40)] autorelease];
UIView *searchView = [[[UIView alloc] initWithFrame:CGRectMake(0, 1, 320, 40)] autorelease];
UINavigationBar *navBar = [[[UINavigationBar alloc] initWithFrame:CGRectMake(1, -1, 320, 41)] autorelease]; // same gradient/style as search bar
[navBar setTintColor:[UIColor lightGrayColor]];
[searchView addSubview:navBar];
[searchView addSubview:searchBar];
4 голосов
/ 30 июня 2011

Я добавляю пустые строки в массив индексов:

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
{
    NSMutableArray *array = [NSMutableArray arrayWithArray:_sortedKeys];

    [array insertObject:@"" atIndex:0];
    [array insertObject:@"" atIndex:0];

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