iOS: Comment passer au travers d'une image avec la pagination
Fondamentalement, je veux avoir une application avec une seule vue qui a une image sur elle. Je veux être en mesure de glisser à gauche ou à droite et la première image de la vue et de la deuxième image. Les images sont les mêmes, et je veux qu'il regarde comme ils sont connectés (comme le défilement vers le bas à une corde où le modèle ne fait que répéter, mais il semble comme une constante de défilement). J'en ai besoin pour être en mesure de modifier l'image ou le redémarrer après une série de balayages. Je sais que j'ai besoin de tourner la pagination dans le UIScrollView, mais je suis nouveau sur iOS et vais avoir des ennuis.
En fin de compte, je veux avoir l'iPhone vibrer chaque soi-et-pour le passage des doigts (et de redémarrer le modèle).
Je suis sûr qu'il ya beaucoup de façons de le faire (c'est à dire un TableView) donc sentez-vous libre de me pointer dans la direction de quelques références si la réponse est fastidieux à expliquer.
Merci!
SUIVI:
J'ai trouvé un exemple Apple, qui a très près de ce que je voulais faire. J'ai fait beaucoup d'ajustements, mais je suis cogner ma tête contre un mur en essayant d'obtenir les images de cycle. Voici ce que je pense est le code fautif, mais je ne sais pas quelle est la solution, comme le ScrollView est fonctionnel, il n'a tout simplement pas de réinitialiser le centre de la vue actuelle. Des idées?
- (void)layoutScrollImages
{
UIImageView *view = nil;
NSArray *subviews = [scrollView1 subviews];
//reposition all image subviews in a horizontal serial fashion
CGFloat curXLoc = 0;
for (view in subviews)
{
if ([view isKindOfClass:[UIImageView class]] && view.tag > 0)
{
CGRect frame = view.frame;
frame.origin = CGPointMake(curXLoc, 0);
view.frame = frame;
curXLoc += (kScrollObjWidth);
}
}
//set the content size so it can be scrollable
[scrollView1 setContentSize:CGSizeMake((kNumImages * kScrollObjWidth), [scrollView1 bounds].size.height)];
}
OriginalL'auteur Sneagan | 2012-02-25
Vous devez vous connecter pour publier un commentaire.
Je venais d'utiliser un UIScrollView. Définir la contentWidth à 3 fois la largeur/hauteur de la vue (3 pages) et définir les contentOffset être le centre "page" (
view.bounds.size.width
ouview.bounds.size.height
selon que vous êtes faire défiler horizontalement/verticalement, respectivement) . Vous aurez besoin de l'installation d'un délégué pour l'UIScrollView (probablement le point de vue contrôleur) et de mettre en œuvre- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
. Ce sera appelée lorsque le défilement de la vue a fini de décélération. Une fois qu'il a fini de décélération, réinitialiser le contentOffset de nouveau au centre de la vue. Cela devrait donner l'impression d'un infini défilement. Vous pouvez également définir un compteur à incrémentation dans le scrollViewDidEndDecelerating méthode pour incrémenter le compteur ou d'engager la vibration.Vous ne devriez pas avoir besoin de garder le repositionnement de la images. Il suffit de régler le images une fois dans la scrollView:
De sorte que les images sont de l'installation, vous n'avez pas besoin de jouer avec eux plus. Juste réinitialiser le contentOffset lorsque le défilement des vues s'arrête (note: vous devez vous assurer que vous êtes le délégué de défilement de la vue ou vous ne pourrez pas recevoir le message lorsque le défilement de l'affichage s'arrête):
S'il vous plaît pardonnez les fautes de frappe. Je l'ai écrit à la main.
J'ai trouvé un exemple Apple, qui a très près de ce que je voulais faire. J'ai fait beaucoup d'ajustements, mais je suis cogner ma tête contre un mur en essayant d'obtenir les images de cycle. Voici ce que je pense est le code fautif, mais je ne sais pas quelle est la solution, comme le ScrollView est fonctionnel, il n'a tout simplement pas de réinitialiser le centre de la vue actuelle. Des idées? Le Code est ci-dessus.
Cela ressemble beaucoup. Une fois que j'comprendre ce qu'est un sentinel est pourquoi NSArray manque un, il semble comme il devrait fonctionner (il semble d'après mes recherches que la sentinelle question a à voir avec les sous-classer le NSArray. Je suis sûr que le fait que je vais avoir un problème avec elle est révélatrice de mon niveau d'expérience et n'est pas de votre faute). J'apprécie vraiment l'aide que vous m'avez donnée avec cette. Après avoir terminé 2 du code des livres que j'ai juste décidé que l'apprentissage de ce est le meilleur chemin et vous avez été d'une grande aide.
Ressemble à la imageViews besoin d'être enveloppé dans de la @"" et suivie par le néant. Se débarrasser de la Sentinelle problème, mais encore de lancer une exception. De faire une enquête.
Vous pouvez également ajouter le scrollview.pagingEnabled=OUI; Alors vous n'avez pas besoin de l'délégué scrollviewDidEndDecelerating:
OriginalL'auteur Aaron Hayman
Regard sur cocoacontrols.com pour personnaliser un album photo de la vue. Comme pour la vibration, cet extrait de code, le téléphone vibre (assurez-vous que vous faites le lien et
#import <AudioToolbox/AudioToolbox.h>
):Pas de problème. Ma recommandation est de ne pas vibrer le téléphone, sauf si absolument nécessaire. C'est un peu gênant!
Je vais probablement faire un réglage. Le mien vit dans le silence je ne parlerai donc pas de la force de vibration sur n'importe qui. 🙂
OriginalL'auteur CodaFi