Как я могу перемещаться и сдвигать UIView с прикосновениями и проведением? - PullRequest
2 голосов
/ 16 июля 2009

Я пытаюсь анимировать некий перетаскиваемый UIView, где поведение должно выглядеть примерно так:

  • Перетаскивание по экрану после прикосновения пользователя.
  • Обнаружение касания пальцем и автоматическое перетаскивание с начальной скоростью и отрицательным ускорением, которое через некоторое время останавливается.

Что-то вроде перемещения по фотографии, а затем через нее к одной стороне экрана.

Какие-нибудь советы по этому поводу?

Ответы [ 3 ]

5 голосов
/ 16 июля 2009

A аналогичный вопрос был задан (мной) около 3 недель назад. Хотя некоторые из ответов, которые я получил, были немного необычны, лучший совет был: 1- изучить пример Apple MoveMe , как прикоснуться к объекту и перетащить его. И 2 - вы «выбрасываете» объект, сравнивая [touch locationInView: self.view] с [touch previousLocationInView: self.view] in touchesEnded (также можно сохранить ссылку на первое касание в touchesBegan , но я считаю, что это менее полезно, поскольку пользователь может сделать паузу), используя отметку времени каждого из них, вы можете определить направление движения (щелчок) и скорость и скорость. используйте их, чтобы отправить своего маленького UIView в полет. Очевидно, что вы хотите применить силы («трение») или что-то еще, чтобы замедлить его, чтобы он не летел справа от вашего экрана ...

0 голосов
/ 16 июля 2009

Взгляните на пример проекта MoveMe от Apple (может потребоваться регистрация). Он демонстрирует, как заставить плакат следовать за прикосновением, а также преобразовывать себя, основываясь на разных прикосновениях.

По сути, идея состоит в том, что вы переопределяете методы касания UIResponder, чтобы проанализировать, какое касание получило устройство, а затем либо перемещаете объект, следуя пальцу пользователя, либо задайте ему скорость в зависимости от того, медленное перетаскивание или пролистывание. Затем вы можете использовать Core Animation для анимации изменений в кадре объекта.

0 голосов
/ 16 июля 2009

Я не уверен. Но может быть вы можете использовать свойство замедления объекта UIScrollView. Поместите ваш imageView в UIScrollView и используйте это свойство. Это переменная BOOL, и возвращаемое значение равно YES, если пользователь не перетаскивает содержимое, но прокрутка все еще происходит.

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