Индекс раздела UITableView перекрывает панель поиска

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

10
задан Peter Hosey 11 April 2010 в 22:15
поделиться

1 ответ

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

Есть несколько предложений, но наиболее простым я считаю поместить 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];
10
ответ дан 3 December 2019 в 23:12
поделиться