Перетащите и разверните с какао на iPhone - PullRequest
1 голос
/ 07 января 2010

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

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

Мне нужно только быть уверенным, что это можно сделать до того, как я начну копать, мне не нужны примеры кода или что-то еще, но если у вас есть какие-то точные ресурсы, которые вы считаете полезными, это будет оценено.

Спасибо!

Ответы [ 3 ]

1 голос
/ 08 января 2010

Да. Если у вас есть пользовательский экземпляр подкласса UIView внутри UIScrollView, вашему контроллеру представления просто нужно настроить UIScrollView, чтобы задерживать касания содержимого и не позволять ему отменять события касания.

[scrollView setCanCancelContentTouches:NO];
[scrollView setDelaysContentTouches:YES];

Когда пользователь нажимает и удерживает в настраиваемом представлении, событие переходит в это настраиваемое представление, которое может обрабатывать события касания для перетаскивания элемента, но если пользователь быстро проводит пальцем, оно прокручивает представление.

0 голосов
/ 07 января 2010

Начните с этого: Переход от одного представления к следующему.

Попробуйте использовать UIButton, который отслеживает время, прошедшее с того момента, как состояние кнопки изменилось на "выделено". Возможно, вам придется сделать это, чтобы отследить перетаскивание и переместить кнопку:

Наблюдение за ужесточением мультитач-жестов в UITableView

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

Возможно, вам придется использовать NSTimer, чтобы отслеживать, как долго удерживается кнопка и т. Д.

В любом случае нет причин, по которым это не могло бы работать.

Если UIButton не работает, то, возможно, попробуйте пользовательский подкласс UIControl (который отслеживает те же действия касания и т. Д.). Если это не сработает, используйте функцию перехвата события окна, чтобы отслеживать все.

0 голосов
/ 07 января 2010

Представление «панель», на которое вы ссылаетесь, выглядит как UIPageControl - хотя, возможно, конкретное воплощение этого представления, которое Apple использует для домашней страницы iPhone, может быть настроено .

Экземпляры общих UIView представлений, которые вы можете коснуться и перетащить, получат сенсорные события. Переопределяя методы в представлении, эти события могут быть обработаны и переданы в элемент управления страницей, чтобы заставить его «перемещаться» между страницами.

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

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