2012-04-08 4 views
1

pour une application iOs je voudrais recréer l'effet de parallaxe des plaques tournantes dans Windows Phone 7. je peux l'atteindre en utilisant ce code:iPhone: parallaxe effet de défilement comme métro WP7 ui

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{ 

    CGRect lc_frame = hubBackgroundImageView.frame; 
    lc_frame.origin.x=-hubItemsScrollView.contentOffset.x/2; 
    hubBackgroundImageView.frame = lc_frame; 
} 

Mais l'effet n'est pas parfait. Dans WP7, sur la dernière page d'un concentrateur, le côté droit de l'image d'arrière-plan correspond parfaitement au côté droit de la vue.

Ici, si mon image est plus petite que ma largeur de scrollview/2, je peux voir mon viewController backgroundColor ...

screenshot

je voudrais obtenir la nouvelle position x de l'image en fonction scrollview contentSize.width, image.frame.size.width et le nouveau scrollview.contentOffset.x. L'objectif est que la dernière page du scrollview mon arrière-plan position de l'image est

backgroundImage.frame.origin.x = -backgroundImage.frame.size.width+self.view.frame.size.width; 

S'il vous plaît, aidez-moi! Merci !

Répondre

2

L'a reçu! Voici ma fonction:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{ 

    float paralaxPlacementRatio=scrollView.contentOffset.x/(scrollView.contentSize.width-scrollView.frame.size.width); 

    CGRect lc_frame = backgroundImageView.frame; 
    lc_frame.origin.x=-backgroundImageView.frame.size.width*paralaxPlacementRatio+(self.view.frame.size.width*paralaxPlacementRatio); 
    backgroundImageView.frame = lc_frame; 
} 

structure de mon point de vue est le suivant:

  • backgroundImageView (UIImageView que je ne connais pas la largeur)
  • ScrollView (UIScrollView pageEnabled que je ne connais pas le contentSize .width)

Le résultat est parfait, si quelqu'un veut une explication, demandez-moi!

Questions connexes