Я хотел бы воспроизвести поведение движка по экрану UIScrollView, но я не хочу использовать (или не использовать) этот класс. Что я могу сделать?Как я могу воспроизвести поведение flick-to-scroll для iPhone UIScrollView в моем собственном пользовательском представлении?
ответ
Хорошо, я ответил на это, выполнив мою собственную библиотеку, которая отображает динамику UIScrollView.
Что полезно для моего кода, так это то, что оно не зависит от системы координат, скорости анимации и определенных классов пользовательского интерфейса, которые вы используете. Он может быть легко вложен в пользовательский класс просмотра по вашему выбору.
Потрясающее поведение iPhone по-прокручиванию интересно. Если вы удерживаете палец в течение длительного времени и перемещаете его по разным направлениям, вы увидите, что для вычисления движения прокрутки используется только последнее направление.
Если вы попытаетесь самостоятельно создать этот код, вы быстро обнаружите, что просто используя последние две точки для вычисления направления движения не собирается его обрезать. Вместо этого мой код хранит короткую историю штрихов и использует линейную интерполяцию, чтобы определить, где «было бы» какое-то небольшое количество времени назад. Эта интерполированная точка используется в качестве основы для вычисления вектора движения. Это приводит к очень приятному взаимодействию.
Код доступен на github, здесь: http://gist.github.com/100855. Он выпущен под лицензией BSD.
Вы ответили на свой вопрос - с помощью довольно привлекательного кода - в течение 2 минут после его запроса? Это интересный код, так что хорошо! –
Да, я не знал, было ли это кошерным для Stack Overflow, но так как я обнаружил, что я не единственный, кто ищет его, я решил, что это будет полезно? Есть ли лучший форум? –
А как насчет UIScrollView не сработало для вас? Этот класс является довольно гибким ...
У меня есть представление OpenGL для игры, и я хотел иметь возможность управлять окном просмотра так же, как у UIScrollView ... –
Дэйва, я вижу, вы answerd свой вопрос с каким-то кодом, но, не устанавливая следующее дать вам то, что вам нужно:
myScrollView.bounces = YES;
myScrollView.pagingEnabled = YES;
myScrollView.directionalLockEnabled = YES;
В частности, это похоже, что вы переопределили directionLockEnabled
. Возможно, понимание того, почему вы не можете использовать UIScrollView, представляет собой более интересную проблему :-)
Смотрите мой комментарий выше. Я пытаюсь воспроизвести поведение в контексте, в котором UIScrollView не может идти (или, по крайней мере, не должен идти.) –
(И: я должен указать, что то, что я сделал, НЕ то же самое, что просто установить несколько свойств в прокрутке. Если это то, что мне нужно было сделать - ну, я бы это сделал. :-) –
... и мне интересно, что это такое ;-) –
Это классно! Я использовал его в приложении, где мое прокручиваемое представление представляет собой графические данные за один день в диапазоне от 1902-2037, поэтому UIScrollView не будет эффективным.
- 1. Как я могу обнаружить прикосновение внутри в своем пользовательском представлении?
- 2. Где я должен отменить регистрацию в моем собственном представлении?
- 3. Проблемы в пользовательском представлении таблицы в iPhone
- 4. Код, необходимый для использования foreach на моем собственном пользовательском appSettings
- 5. Чтение атрибутов Android на моем пользовательском представлении
- 6. Как я могу воспроизвести поведение встроенной функции Python в C#?
- 7. UIScrollView в пользовательском UITableViewCell
- 8. Как я могу сделать обратное геокодирование на моем собственном сервере?
- 9. Как реализовать поведение -time-pass в моем собственном джиттере?
- 10. Как я могу воспроизвести файл .mp3 в моем приложении ios?
- 11. Как я могу воспроизвести файл .swf в моем приложении WPF?
- 12. Как я могу нарисовать линию на моем собственном макете?
- 13. iphone- UIScrollview диагональ проведите неожиданное поведение
- 14. Как воспроизвести поведение Window.ShowDialog()
- 15. Как я могу использовать IBAction внутри моего контроллера, чтобы нарисовать круг в моем пользовательском представлении?
- 16. Как я могу выполнить сканирование Python на моем собственном сервере
- 17. Как использовать стандартный атрибут android: текст в моем пользовательском представлении?
- 18. Как показать всех пользователей в моем пользовательском представлении в Treeline
- 19. Как я могу использовать бит в моем приложении для iPhone?
- 20. Как очистить холст в моем пользовательском представлении Android?
- 21. Как я могу использовать/использовать область видимости в моем представлении
- 22. Как я могу переопределить холст в моем представлении?
- 23. Могу ли я увеличить localstorage на моем собственном компьютере?
- 24. Laravel: Как я могу использовать Group By в моем представлении?
- 25. Как я могу создать динамическую строку в моем представлении?
- 26. Как getGravity() в пользовательском представлении?
- 27. Как я могу имитировать инерционную прокрутку в пользовательском UIView, когда я не могу использовать UIScrollView?
- 28. ошибка пользователя в моем приложении Я не могу воспроизвести
- 29. UnsupportedOperationException в пользовательском представлении
- 30. Как сделать снимок в собственном представлении для приложения для Android?
Примечание: вопрос касался OpenGL-представления – Thanks
Правда, в _my_ случае я думал о просмотрах OpenGL. Однако, см. Мой ответ на Роджера Нолана ниже - я думаю, что есть много интересных случаев, отличных от OGL. –