2011-10-23 3 views
-2

J'ai environ 30 images. Je veux avoir un diaporama de ces images sans intervention de l'utilisateur. Les exigences principales sont -iOS Looping Image Diaporama

  1. image1 fadesIn, affiche pendant 20 secondes, image1 fadesOut - image2 FadesIn etc. Tout ceci se produit automatiquement. Aucune intervention de l'utilisateur.
  2. Également lorsque nous atteignons la dernière image, image20. Le diaporama revient à la première image. Ce diaporama peut contenir d'autres éléments tels que UILabel. Ce n'est donc pas un diaporama d'images.

Mon plus gros problème est de savoir comment chaîner 20 images dans cette animation fadein/fadeout? Comment pouvons-nous faire cela dans iOS?

+0

http://stackoverflow.com/questions/5618964/iphone-fading-of-images –

+0

@MattiasWadman merci pour le lien. le diaporama pourrait ne pas être juste des images. Si c'était votre lien est parfait. Et si je veux montrer 'UILabel' comme ça? Fadein a 'label' tout en évanouissant autre' label' ou 'image'? J'ai mis à jour la question au point3 –

+0

Ensuite, je créerais probablement 'UIView': s pour chaque" image "qui pourrait contenir des étiquettes, des images, etc, puis animer entre eux en utilisant la propriété' alpha'. –

Répondre

2

Vous pouvez utiliser un UIView contenant une UIImageView différente pour chaque image que vous devez montrer sur votre diaporama et créer un bloc d'animation imbriqué. Quelque chose comme ceci:

[UIView animateWithDuration:1.0 
       animations:^{ /* animations */ } 
       completion:^(BOOL finished){ [UIView animateWithDuration:1.0 
                   animations:^{ /* animations */ } 
                   completion:^(BOOL finished){ [UIView animateWithDuration:1.0 
                              animations:^{ /* animations */ } 
                              completion:^(BOOL finished){}]; }]; }]; 
1

le code de Kirualex est vraiment agréable, propre et à mettre en œuvre facile, vous remercie . Si quelqu'un veut arrêter la transition en touchant l'écran, lorsque la diapo automatique est activée, j'ai ajouté une propriété booléenne 'addTouchStop' dans le KASlideShow.h et les méthodes suivantes dans le KASlideShow.m. à l'intérieur du viewController principal, définissez cette propriété booléenne true.

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
if (addTouchStop) { 

    [self stop]; 
} 
} 

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    if (addTouchStop) { 
    [self start]; 
} 
}