Helpers - компьютеры, интернет, программирование

Как получить contentOffset середины прокрутки UIScrollView?

Как можно получить contentOffset или аналогичную информацию об UIScrollView, пока пользователь все еще прокручивает? Например, если бы я хотел поместить изображение в качестве заголовка прямо над содержимым UIWebView, чтобы изображение не было частью scrollView WebView, но чтобы оно обновлялось во время прокрутки пользователя, а не просто перескакивало на позицию после того, как они отпустили. Как я мог это сделать?


Ответы:


1

В iOS 5 UIWebView имеет свойство scrollView, которое является UIScrollView ответственным за обработку прокрутки. До iOS 5 вы можете искать свойство subviews UIWebView для subview, используя [subview isKindOfClass:[UIScrollView class]].

Когда у вас есть UIScrollView, вы можете установить его свойство делегата. Затем в делегате вы можете ответить на сообщение scrollViewDidScroll:, когда пользователь прокручивает, и обновить позицию/содержимое вашего представления заголовка.

Добавлено: 29/02/2012 - Чтобы сохранить функциональность UIWebView, вам нужно будет также перенаправить перехваченные методы UIScrollViewDelegate в UIWebView. Для этого вы можете вызвать UIWebView в конце всех обязательных методов протокола и реализовать что-то вроде forwardInvocation: или forwardingTargetForSelector для необязательных методов протокола. Это сохранит ваше исходное UIWebView поведение и позволит вам улучшить его с помощью собственной логики.

26.02.2012
  • когда я реализую это, я могу получить contentOffset, как описано, но масштабирование испорчено. Я закомментировал webview.scrollView.delegate = self; и масштабирование было исправлено. Любые идеи? 27.02.2012
  • @Greg Как я уже сказал в своем ответе, вы не можете сделать это с помощью UIWebView. Если вы назначаете себя делегатом UIWebView от UIScrollView, то вы топчетесь на UIWebView. Это невозможно сделать. 27.02.2012
  • Затем перенаправьте все вызовы делегатов на сам веб-просмотр после выполнения того, что вам нужно сделать. т.е. держите себя в качестве делегата, а затем в методах делегата отправьте одно и то же сообщение и параметры в веб-просмотр. 28.02.2012

  • 2

    Почему вы не можете просто поместить заголовок как отдельный вид над UIWebView? Почему это должно быть подвидом?

    26.02.2012
  • Это не так. Я не знаю, откуда вы это берете. 28.02.2012
  • Новые материалы

    Интуитивное понимание тензоров в машинном обучении
    Тензор является важной концепцией во многих научных областях, таких как математика, физика, обработка сигналов и компьютерное зрение, и это лишь некоторые из них. В математике тензор — это..

    Использование машинного обучения для диагностики болезни Альцгеймера, часть 4
    Маркеры семантической согласованности для ранней диагностики болезни Альцгеймера (arXiv) Автор: Давиде Колла , Маттео Дельсанто , Марко Агосто , Бенедетто Витиелло , Даниэле Паоло Радичони..

    Почему объяснимость так важна прямо сейчас?
    По мере того, как системы искусственного интеллекта и инструменты на основе машинного обучения распространяются в нашей повседневной жизни, как практики, так и критики все чаще заявляют о..

    Анимированный математический анализ
    Использование Manim для создания математических анимированных визуализаций Визуализация данных помогает понять скрытые закономерности в данных, которые невозможно визуализировать..

    Создание простого слайдера изображений с помощью JavaScript
    Узнайте, как создать базовый слайдер изображений с помощью HTML, CSS и JavaScript. Введение В этом уроке мы создадим удобный слайдер изображений, используя JavaScript, HTML и CSS. Ползунок..

    Создание базы данных с помощью супергероя «Python»
    В этом посте мы узнаем, как создать «базу данных SQLite с помощью модуля python sqlite3, создав простую функцию входа и регистрации. Готовы ли вы к этому путешествию? Если да , давайте приступим..

    ИИ для чайников: руководство для начинающих по пониманию будущего технологий
    Вы чувствуете, что остались позади в мире ИИ? Не волнуйтесь, вы не одиноки! Со всей этой шумихой вокруг искусственного интеллекта может быть трудно понять, с чего начать. Но не позволяйте сленгу..