2010-05-26 10 views

Répondre

4

Ce serait un contrôle que vous auriez à écrire vous-même. Je ne suis pas ce que la meilleure approche serait, mais je pense que j'irais avec sous-classer un UISlider, dessiner le tableau d'images les uns à côté des autres pour créer la piste, puis en utilisant l'image actuelle comme le handle.

+0

Merci. Comment pensez-vous que votre approche se compare à la réponse de Matt Long? – hpique

+2

La réponse de Matt sera probablement plus performante que de la baser sur une sous-classe UISlider. J'imagine que tu aurais beaucoup plus de liberté avec l'approche de Matt. Cependant, je pense qu'en utilisant un UISlider comme base, vous seriez capable d'accomplir ceci beaucoup plus facilement et plus rapidement. – Jasarien

3

A partir de zéro, est la réponse, malheureusement.

Vous créez une vue personnalisée et ajoutez votre tableau d'images en tant que sous-vues en utilisant des objets UIImageView incrémentant votre position x par la largeur de vignette que vous avez décidé d'utiliser.

Puis remplacez les événements tactiles pour votre affichage personnalisé. Déterminez quelle vue d'image la touche est actuellement terminée dans -touchesMoved et utilisez Core Animation pour animer l'échelle de la vue actuelle en la rendant plus grande que le reste. Ajoutez la vue personnalisée à votre barre d'outils en enveloppant votre vue personnalisée dans un UIBarButtonItem en utilisant -initWithCustomView. N'oubliez pas d'activer l'interaction de l'utilisateur sur votre vue personnalisée ou vous ne recevrez pas d'événements tactiles. Si vous avez besoin d'aide avec le code, mettez à jour votre question avec des questions spécifiques au code.

+0

Merci. Comment pensez-vous que votre approche se compare à la réponse de Jasarien? – hpique

1

Si quelqu'un en avait encore besoin, j'ai fait un effort pour trouver ThumbnailPickerView - un simple contrôle de l'interface utilisateur ressemblant à un curseur de vignette Photos.app.

+0

Très utile et bonne solution @Ayoy ... Merci! –