Как мне показать UISearchBar на правой стороне UINavigationItem? - PullRequest
0 голосов
/ 27 января 2011

Я пытаюсь отобразить UISearchBar вместо кнопки, показанной справа от UINavigationItem. Я использую этот код:

- (void)viewDidLoad {
    [super viewDidLoad];
    UISearchBar *searchBar = [[UISearchBar alloc] init];
    UIBarButtonItem *navRight = [[UIBarButtonItem alloc] initWithCustomView:searchBar];
    [[self navigationItem] setRightBarButtonItem:navRight];

    [searchBar release];
    [navRight release];
}

Однако отображаемая строка поиска имеет ширину всего несколько пикселей. Мне нужно сделать его шире.

Я поступаю неправильно? Это вообще возможно?

1 Ответ

2 голосов
/ 27 января 2011

Вам нужно установить фрейм UISearchBar в какой-то момент.

e.x.

UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 200, 20)];

РЕДАКТИРОВАТЬ: Относительно артефакта в виде кнопки под UISearchBar

Кнопка-y, которую вы видите под UISearchBar, на самом деле является фоновым элементом UISearchBar, а не результатом поиска, перекрывающего UIBarButtonItem. Поскольку, похоже, нет хорошего способа скрыть это (и я надеюсь, что кто-то может прийти и поправить меня), я могу указать вам только направление хак , которое сопряжено с обычными опасностями. зависимости от версии SDK, неравенства и потенциальной возможности возникновения головной боли.

РЕДАКТИРОВАТЬ 2: Другое потенциальное решение

Вы также можете установить высоту рамки вашего UISearchBar на 44 (высота панели навигации), и тогда фон должен хорошо сочетаться с панелью навигации. Исходя из этого ТАКОГО поста, который я недавно видел.

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