CGRect cgRect1 = [[UIScreen mainScreen] applicationFrame];
UISearchBar *mySearchBar = [[UISearchBar alloc]
initWithFrame:CGRectMake(0, 0, cgRect.size.width, 40)];
mySearchBar.autoresizingMask =
UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight ;
UITableView *myTableView = [[UITableView alloc]
initWithFrame:CGRectMake(0, 40, cgRect.size.width, cgRect.size.height-40)];
myTableView.autoresizingMask =
UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
[self.view addSubview:mySearchBar];
[self.view addSubview:myTableView];
У попередніх версіях він працює коректно. Рядок пошуку відображається під statusbar
панеллю навігації та навігації. Показ tableview
відображається під панеллю пошуку
Але коли я запускаю цю Xcode 5 sdk iOS 7
панель, рядок пошуку не видно (я думаю, її розміщують під рядком стану та навігаційною панеллю), а також панель навігації з’являється над поданням таблиці.
Чи буде це виправлено iOS 7
стабільним випуском?
Або це проблема мого кодування?
Або ми маємо це обробити, додавши (y = statubar height + nav bar height)
значення у iOS 7
?
Нещодавно я завантажив Xcode 5 DP, щоб перевірити свої програми в iOS 7. Перше, що я помітив і підтвердив, - це те, що межі мого перегляду не завжди змінюються для врахування рядка стану та панелі навігації.
У viewDidLayoutSubviews я друкую межі перегляду:
{{0, 0}, {320, 568}}
Це призводить до того, що мій вміст з’являється під навігаційною панеллю та рядком стану.
Я знаю, що міг би сам пояснити висоту, отримуючи висоту головного екрана, віднімаючи висоту рядка стану та висоту панелі навігації, але це здається зайвою зайвою роботою.
Хтось ще відчував це питання?
ОНОВЛЕННЯ:
Я знайшов рішення для цієї конкретної проблеми. Встановіть для напівпрозорого властивості панелі навігації значення НІ:
self.navigationController.navigationBar.translucent = NO;
Це дозволить уникнути обрамлення пода під навігаційною панеллю та рядком стану.
Однак я не знайшов виправлення для випадку, коли потрібно, щоб панель навігації була напівпрозорою. Наприклад, переглядаючи фотографію на весь екран, я хочу, щоб панель навігації була напівпрозорою, а вигляд був обрамлений під нею. Це працює, але коли я перемикаю показ / приховування панелі навігації, я відчував ще більш незначні результати. Перший підвід (а UIScrollView
) отримує свої межі y походження змінюється щоразу.