Отказ от ответственности: Я - что-то вроде iOS n00b. У меня есть навигационное приложение на основе - то есть, в моем AppDelegate, я создать навигационную рамку:Создание UISearchBar и UITableView внутри UIView
self.navigation_controller = [[UINavigationController alloc] initWithRootViewController:home_view_controller];
self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];
self.window.rootViewController = navigation_controller;
self.window.makeKeyAndVisible;
Внутри рамки моего дома зрения, я хочу панель поиска, затем прокручивать вид таблицы. Итак, я написал следующее:
- viewDidLoad{
(HomeView*)home_view = [[HomeView alloc] init];
self.view = home_view
self.view.backgroundColor = [UIColor whiteColor]
(UITableView*)self.table_view = [UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
self.table_view.bounds.origin.y += 44;
self.table_view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
self.table_view.dataSource = self;
self.table_view.delegate = self;
[self.view addSubview:self.table_view];
search_frame = self.view.bounds;
search_frame.origin.y = 48.0;
search_frame.size.height = 48.0;
self.search_bar = [[UISearchBar alloc] initWithFrame:search_frame)];
[self.view addSubview:self.search_bar];
}
Вид таблицы отображается хорошо, но занимает все пространство под панелью навигации. Я хочу иметь панель навигации, а затем сразу под ней панель поиска, а затем табличный вид. В точке viewDidLoad
UITableView
еще не имеет ненулевого ограничивающего прямоугольника, и я ожидаю, что это часть проблемы. Кроме того, я указал UIViewAutoresizingFlexibleHeight
в своем autoresizingMask
, когда я действительно хочу, чтобы он склеивался с панелью поиска - опять же, я считаю, что это может быть частью проблемы.
Что я неправильно понял здесь?
Благодаря
То, что я ликвидируется делать делает панель поиска тумблер запускаемого значок поиска в nav bar, который в любом случае немного сексуальнее :) Что я не получал, так это то, как работает autoresizemasks, AFAICT. Мое решение работает вокруг этого, не заботясь о том, что UITableView занимает всю область просмотра, оставленную UINavigationView. Поскольку панель поиска теперь охватывает верхнюю запись в таблице, я, вероятно, должен вставить таблицу так, чтобы она все еще была видна ... –