Добавьте анимированную верхнюю панель в UIWebView - PullRequest
0 голосов
/ 11 апреля 2011

У меня есть контроллер UIWebView, который загружает веб-страницу, и я хотел бы добавить панель вверху страницы с кнопками обновления и закрытия. Панель должна скрываться при загрузке страницы и снова показываться, если пользователь нажимает на верхнюю часть страницы.

Кто-нибудь знает, как к нему подойти? Есть ли простой способ сделать это?

UPDATE:
Я думаю, что я не был достаточно ясен с вопросом, поэтому вот некоторые разъяснения:
1. Приложения - это стандартное приложение, которое одним из потоков открывает UIWebView, который загружает веб-страницу
2. Мне нужна панель, которая скользит вниз по верхней части веб-страницы (загруженной в UIWebView) и должна помочь пользователю преодолеть сценарий, когда веб-страница по какой-то причине не загружается
3. Панель должна удерживать операции возврата (просто закрыть UIWebView) и обновления (перезагрузки UIWebView).

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

Спасибо, Shimix

Ответы [ 3 ]

0 голосов
/ 11 апреля 2011

Я сейчас работаю над чем-то вроде этого и пока, вот что я придумала. Отчасти это может быть очевидно, но важно:

  • Ваша адресная строка должна быть слева navigationItem.
  • Панель поиска - это строка navigationItem.
  • Вы должны анимировать кнопку отмены ввода / вывода, когда начинаете / заканчиваете редактирование в поле URL.
  • Safari Mobile использует свойство Prompt navigationBar для отображения заголовков веб-страниц.
  • Чтобы анимировать ширину полос поиска / URL, используйте анимацию UIView, когда эта полоса выбрана.
0 голосов
/ 11 апреля 2011

Довольно просто добавить UIToolbar над веб-представлением с помощью UIBarButtonItems, которые вызывают методы обновления, возврата и пересылки веб-просмотра. Вы также можете добавить методы webviewdelegate в свой контроллер представления, чтобы определить, когда страница закончила загрузку, и скрыть / показать панель инструментов таким образом.

Если вы хотите, чтобы элементы управления обновлением и навигацией отображались как часть HTML-содержимого самого веб-просмотра, это немного сложнее, но не невозможно. Вы можете использовать метод делегата shouldLoadRequest веб-просмотра, чтобы обнаружить, что эти кнопки были нажаты, и затем выполнить соответствующее действие в вашем viewcontroller. Сокрытие и показ навигационной панели должны обрабатываться в JavaScript.

0 голосов
/ 11 апреля 2011

Если я не пропускаю библиотеку / проект, занимающийся этим, я не думаю, что есть простой способ сделать это.

Я уже кодировал что-то похожее на мобильную адресную строку Safari, и из памяти это включало использование личного apis и / или игру с "не так приватно, но используйте на свой страх и риск" UIWebView иерархия подпредставлений ...

...