2012-05-09 2 views
0

Comment les affecter à avoir tag:Comment tag UIImage dans UIScrollView

self.images = [NSMutableArray arrayWithObjects: 
         @"1.jpg",@"2.jpg",@"3.jpg",@"4.jpg",@"5.jpg",nil]; 

Chaque fois que UIScrollView arrête à une image spécifique, il va faire quelque chose/action/animation. Comme par exemple dessiner une boîte à gauche lorsque l'image 1 est affichée, dessiner une boîte à droite lorsque l'image 2 est affichée dans un UIScrollView. Merci.

est ici le tableau:

- (void)awakeFromNib 
{  
    if (self) { 

     //set up carousel data 
     //wrap YES = infinite loop 
     wrap = YES; 

     self.images = [NSMutableArray arrayWithObjects: 
         @"1.jpg",@"2.jpg",@"3.jpg",@"4.jpg",@"5.jpg"nil]; 
    } 

} 

ici est où mon image est affichée:

- (UIView *)carousel:(iCarousel *)_carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view 
{ 
    view = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[images objectAtIndex:index]]]; 

    return view; 

} 
+0

Je ne comprends pas. Que voulez-vous dire par "Chaque fois qu'une image spécifique est affichée dans un UIScrollView, une animation/action sera effectuée"? –

+0

Je pense que vous savez, que vous n'avez pas d'images (mais des chaînes) dans le code que vous avez posté ... –

+0

Son déclaré dans le awakeFromNib. –

Répondre

1

Je réponds sur base de ce que j'ai eu des commentaires sur d'autres réponses (Vous devriez vraiment éditer votre question !!!).

Je suppose qu'il y a un UIScrollView en mode de pagination qui montre exactement une image sur son image complète après que le défilement s'est arrêté. Si vous ne souhaitez à obtenir cette image et faire quelque chose, disons dépend d'une étiquette vous définissez avant, le code dans votre délégué de défilante pourrait ressembler à ça:

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 
{ 
    int imageTag; 
    for(UIView *sv in scrollView.subviews) 
    { 
    if(sv.frame.origin.y >= scrollView.contentOffset.y 
     && sv.frame.origin.y <= scrollView.contentOffset.y + scrollView.frame.size.height) 
    { 
     imageTag = sv.tag; 
     break; 
    } 
    } 
    switch (imageTag) 
    { 
     //do something 
    } 
} 
+0

Il dit 'Aucun membre nommé 'y' dans struct CGSize'. –

+0

Je veux être en mesure de réaliser cela par exemple si image1 est l'endroit où l'UIScrollview s'arrête, il va dessiner une boîte, lorsque l'image 2 est l'endroit où l'UIScrollview s'arrête, il va dessiner une boîte vers la droite. Et j'ai 75 images. –

+0

@bry Hmm ... mon code n'accède à aucun 'y' dans un' CGSize'. Avez-vous copier et coller –

0

si vous parlez de la navigation image suivante à afficher. puis vérifier le code exemple ici

http://developer.apple.com/library/ios/#samplecode/PageControl/Introduction/Intro.html

et si quelque chose d'autre. alors expliquez ce que

+0

Chaque fois que UIScrollView s'arrête à une image spécifique, il fera quelque chose/action/animation. Comme par exemple dessiner une boîte à gauche lorsque l'image 1 est affichée, dessiner une boîte à droite lorsque l'image 2 est affichée dans un UIScrollView. Merci. –

+0

Je pense que ceci peut être consulté en vérifiant quelle page est sélectionnée. – Saad

+0

J'utilise un Vertical UIScrollView –

0

Que diriez-vous de vérifier la coordonnée x des images? Cela semble être une façon légitime de vérifier ce que l'image montre ... Si vous voulez tag, vous pouvez soit utiliser les index, ou stocker les pointeurs sur les images dans un dictionnaire.

+0

avez-vous un code d'échantillon pour cela? –

+0

Pouvez-vous montrer le code de comment vous ajoutez les images au scrollview? Ensuite, je peux mettre un échantillon. – Martol1ni

+0

ici: - (void) awakeFromNib2 { si (auto) {// mis en place des données carrousel // WRAP YES = boucle infinie wrap = OUI; self.images = [NSMutableArray arrayWithObjects: @ "1.jpg", @ "2.jpg", @ "3.jpg", @ "4.jpg", @ "5.jpg", néant]; } } –

0

Vous pouvez calculer simplement le décalage de votre UIScrollView, en utilisant la formule suivante:

NSUInteger currentPage = floor((yourScrollView.contentOffset.y - theHeightOfYourImage/2)/theHeightOfYourImage)+1 

Ceci est du haut de ma tête, mais si je ne me trompe pas, cela vous donnera la page en cours C'est actuellement sélectionné. Bien sûr, cela nécessite que toutes vos pages/images aient la même hauteur.

Vous pouvez implémenter dans

- (void) scrollViewDidScroll:(UIScrollView *)scrollView 

Cela vous donnera un indice de travailler avec.

Questions connexes