Если вы не используете какой-либо специальный набор инструментов (я не уверен, что для этого существует специальный набор инструментов или 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, вы можете создавать их как домашний экран.