iOS: возможно ли сделать UINavigationBar выше и «вытолкнуть» другие виды вниз на экран? - PullRequest
8 голосов
/ 21 июня 2011

Есть ли способ сделать так, чтобы область контента в приложении для iPhone знала о большей панели навигации?

Аналогично этим вопросам:

Мне удалось использовать пример кода 1-го вопроса, чтобы добавить категорию на UINavigationBar и изменить ее высоту, и добавил подпредставление там, где оно мне нужно, но я не вижу способа вызвать UITableView (или вообще любого просмотры контента), чтобы учесть его высоту:

iPhone 4 Simulator Screenshot
(Цвета предназначены только для различения различных видов)

Ответы [ 2 ]

8 голосов
/ 22 июня 2011

Принятый ответ на первый вопрос устанавливает рамку навигационной панели в -layoutSubviews, которая может варьироваться от "ewwwww" до совершенно неправильной в зависимости от предположений, сделанных другим кодом макета.

Вместо этого переопределите -sizeThatFits: для возврата более подходящего размера.

0 голосов
/ 22 июня 2011

Я бы пошел на это, настроив tableView.frame, так что-то вроде этого:

CGRect navFrame = self.navigationController.navigationBar.frame;

CGRect tableFrame = self.tableView.frame;

tableFrame.size.height = tableFrame.size.height - navFrame.size.height;
tableFrame.origin.y = navFrame.size.height; //move it down by the height covered by the navigation Bar

self.tableView.frame = tableFrame;

Вы можете сделать это и с другими видами, т. Е. Просто отрегулировать кадр.

У меня нет XCode на этом компьютере, поэтому я не проверял код - просто записал его в качестве примера, поэтому, пожалуйста, проверьте его перед использованием!

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