Переупорядочить подпредставления в UIScrollView как значки приложений на главном экране - PullRequest
2 голосов
/ 06 января 2011

Привет, ребята,

У меня к вам вопрос: я получил UIScrollView в своем приложении, содержащем многочисленные подпредставления (все прямые подклассы UIView).Теперь я хочу дать пользователю возможность переставить эти подпредставления внутри прокрутки.Есть ли способ сделать так, чтобы все мы могли менять иконки на нашем домашнем экране (автоматическая перестановка)?Буду очень признателен за любую помощь!Спасибо заранее, Тим

Ответы [ 2 ]

3 голосов
/ 07 января 2011

Если вы не используете какой-либо специальный набор инструментов (я не уверен, что для этого существует специальный набор инструментов или API), я думаю, вам следует создавать их с нуля.

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

Есть два способа их построить. (маленькие подпредставления == иконки)

1a) Реализация сенсорных событий (gestRecognizer или touchesBegan, Moved, Ended, Cancelled) в основном подпредставлении UIScrollView, которое содержит много небольших подпредставлений.

1b) Реализация сенсорных событий в каждом небольшом подпредставлении.

Я выбрал 1b, потому что хочу использовать небольшие подпредставления не только в UIScrollView, но и в любом месте моей программы. Но с 1b было немного трудно предотвратить мультитач среди этих маленьких представлений. Также я чувствовал, что с 1b сенсорные события в маленьких подпредставлениях более свободны от сложных цепочек респондента приложения.

2) Создайте экземпляр NSMutableArray, который содержит список небольших подпредставлений.

3) Реализуйте функцию, которая отображает экземпляр NSMutableArray на главном представлении экземпляра UIScrollView, перечисляя его.

4) Реализовать функцию, которая перечисляет экземпляр NSMutableArray и проверяет, находится ли текущая позиция касания малого подпредставления в кадре любого небольшого подпредставления NSMutableArray. (или проверяет, пересекает ли кадр текущего движущегося малого подпредставления кадр любого небольшого подпредставления) Вы можете использовать функции CGRectContainsPoint или CGRectContainsRect из CGGeomtery.

5a) Если да, то вы можете просто изменить фрейм каждого небольшого подпредставления NSMutableArray.

5b) Если пользователь отпускает палец за рамкой любого небольшого подпредставления, то ничего не делать.

Просто используя методы анимации на основе блоков (iOS4 и более поздние версии) или методы анимации start / commit, вы можете создавать их как домашний экран.

1 голос
/ 16 августа 2012

Очень хороший пример для Scrollview с Pagecontrol, как домашний экран iphone

https://github.com/jarada/myLauncher

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