2015-02-06 2 views
2

Я пытаюсь добавить UIImageView в обратную сторону панели навигации.
Причина в том, что я хочу создать UITableView, навигационная панель которого на самом деле является изображением (с обратной кнопкой слева), но я хочу, чтобы изображение прокручивалось с помощью таблицы и когда изображение полностью прокручивалось. Панель навигации отображается как нормальная.
Мое решение этой проблемы:
Добавить UIImageView в верхней части UITableView и сделать навигационную панель прозрачной. Установите contentOffset для UITableView, который является подклассом UIScrollView, так что, когда представление представлено, похоже, что изображение заполняет строку состояния навигации.
When the view is shown, it is exactly what I want. Проблема:
Если я прокручивать вверх, а не отскакивая назад, бар прозрачный статус отображается (с цветом фона, как она прозрачна).
If I scroll up, instead of bouncing back, I see the transparent navigation bar. Возможный способ решить эту новую проблему:
Я думал о попытке ограничить размер ScrollView, чтобы обойти с проблемой, но не удалось.
Итак, я чувствую, что можно добавить UIImageView в «заднюю панель» панели навигации, чтобы она была без смещения? С тех пор моя жизнь будет намного проще.
Любые предложения по решению этого или другого нового подхода для получения того же UI/эффекта?
question.Добавьте UIImageView в обратную сторону NavigationBar (НЕ фонового изображения)

+0

Вы можете добавить представление изображения в виде подсмотра заголовка навигации. –

+0

@JadFeitrouni. Но в этом случае, если я прокручу дальше вниз, изображение всегда будет там правильно? Я хочу, чтобы изображение было заменено обычным заголовком, когда оно прокручивается с экрана. – Ra1nWarden

+0

Да, вы правы, теперь я получаю то, что вы пытаетесь сделать. –

ответ

1

Я бы сделал это, добавив заголовок таблицы или ячейку в верхней части таблицы, которая содержит ваше изображение.

Создайте табличный вид так, чтобы он простирался до самого верха экрана. Выполнить в верхнем баре. Я не делал этого с UITableViewController, но я сделал это с UITableView, встроенным в представление UIViewController, с верхним ограничением, установленным в 0 для представления, а не в верхней макете.

Теперь, когда вы запустите это, ваш стол заполнит весь экран, а верхний заголовок или ячейка будут в верхней части экрана.

При прокручивании вы можете использовать либо UIScrollViewDelegate обнаружить движение или осуществлять tableView:didEndDisplayingCell:forRowAtIndexPath:

Я не 100% уверен, что если вы хотите, панель навигации, чтобы пойти не ясно. Если это когда изображение погаснет, тогда didEndDisplayingCell должен быть хорошим. Если его, когда дно ячейки проходит под нижней частью навигационной панели, может быть единственным вариантом выбора прокрутки.

Это будет также отскок, как вы ожидаете, когда вы потянете вниз, и он должен вернуться к вершине.

Надеюсь, это поможет.

+0

Спасибо за ваши идеи. Я сделал трюк с помощью 'UITableViewController', просто проверив настройку Scroll View Insets внутри инспектора контроллера вида. Сейчас работает как магия! – Ra1nWarden

Смежные вопросы