Индексное перекрытие заголовков раздела таблицы UISearchBar

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

8
задан PeeHaa 12 January 2014 в 03:31
поделиться

2 ответа

Одно из возможных решений - добавить настраиваемое представление в tableHeaderView. Вот что я сделал:

searchBar - это UISearchBar, который я объявил в заголовочном файле. Я создал UIView и добавил UINavigationBar по всей ширине, а поверх него - короткий UISearchBar. Затем я, наконец, назначил UIView tableHeaderView.

searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0.0, 0.0, 290.0, 44.0)];

UIView *customTableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 44.0)];
UINavigationBar *dummyNavigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 44.0)];
[customTableHeaderView addSubview:dummyNavigationBar];
[customTableHeaderView addSubview:searchBar];
[dummyNavigationBar release];

self.tableView.tableHeaderView = customTableHeaderView;
[customTableHeaderView release];

Более элегантным решением может быть растяжение UISearchBar с помощью свойства contentStretch. Мне все еще нужно попробовать это и проверить, работает ли оно.

5
ответ дан 5 December 2019 в 22:18
поделиться

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

0
ответ дан 5 December 2019 в 22:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: