2010-05-21 4 views
2

HI, Je développe une application dans laquelle je veux implémenter l'écran de démarrage, sur cet écran de démarrage je veux lier les scrollView et UIImage. Mon code comme suit,Comment faire un zoom particulier sur UIScrollView?

-(void)splashAnimation{ 
    window = [[UIWindow alloc] initWithFrame:CGRectMake(0, 0, 320, 420)]; 
    //scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]; 
    scrollView = [[UIScrollView alloc] initWithFrame:[window bounds]]; 
    scrollView.pagingEnabled = NO; 
    scrollView.bounces = NO; 

    UIImage *image = [UIImage imageNamed:@"splash.png"]; 
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; 
    imageView.userInteractionEnabled = NO; 

    [scrollView addSubview:imageView]; 
    [scrollView setDelegate:self]; 
    //[scrollView release]; 


} 

- (void)applicationDidFinishLaunching:(UIApplication *)application {  
    [self splashAnimation]; 
    [self initControllers]; 
    [window addSubview:[mainTabBarController view]]; 
    [window makeKeyAndVisible]; 
} 

Sur mon code donné, une fenêtre vide apparaît et reste allumée. Je veux sur cet écran vide lier mon splash.png.

**** Le problème ci-dessus est résolu **** Mon code actuel est

scrollView.pagingEnabled = NO; 
    scrollView.bounces = NO; 

    UIImage *image = [UIImage imageNamed:@"splash.png"]; 
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; 
    imageView.userInteractionEnabled = NO; 
    [scrollView addSubview:imageView]; 

    scrollView.maximumZoomScale = 4.0f; 
    scrollView.minimumZoomScale = 1.0f; 

    CGRect rect = CGRectMake(119, 42, 208, 166); 

    [scrollView zoomToRect:rect animated:YES]; 
    [scrollView setDelegate:self]; 
    [window addSubview:scrollView]; 
    [window makeKeyAndVisible]; 

Je veux agrandir la partie particulière de ScrollView.

Répondre

4

RajB - pour votre zooming du ScrollView faire ceci:

CGRect zoomRect = CGRectMake(119, 42, 208, 166); 
[scrollView zoomToRect:zoomRect animated:YES]; 

Hope this helps!

1

Vous créez un UIScrollView mais ne l'ajoutez jamais à la hiérarchie de vue, par conséquent, il ne s'affichera jamais. Appelez [window addSubview:scrollView], puis n'oubliez pas de le libérer.

Si vous utilisez MainWindow.xib dans votre projet, votre fenêtre est créée pour vous, vous n'avez pas besoin de créer la vôtre.

Utilisation [[UIScreen mainScreen] au lieu de CGRect(0, 0, 320, 420) < - je crois aussi que vous vouliez dire "480"

Après avoir configuré votre animation de démarrage, vous appelez [window addSubview:[mainTabBarController view]]. Même après avoir ajouté votre scrollview comme mentionné précédemment, cela deviendra la vue la plus haute et par conséquent visible.

Retardez [window addSubview:[mainTabBarController view]] jusqu'à la fin de l'animation de démarrage.

+0

Merci. Votre réponse est vraiment utile et travaille pour moi. Cela résout mon problème. S'il vous plaît, aidez-moi comment je zoom sur la partie particulière de UIScrollView (contenu de défilement UIImage) .Je veux zoomer CGRect (119, 42, 208, 166) de scrollView, puis-je? Mon code actuel modifié dans la question principale. – Tirth

Questions connexes