2010-02-23 4 views
0

J'ai une application qui utilise l'appareil photo de l'iPhone et met une superposition sur l'appareil photo. Cependant tout cela fonctionne très bien et j'ai réussi à faire pivoter l'UIView en paysage mais leur écart est de 20px en haut de la vue bien que j'ai réglé le positionnement à (0,0480,320).iPhone CameraOverlay voir 20px gap

starContainerView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 480.0, 320.0)]  autorelease]; 
UIImageView *overlayViewNew = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,480.0,320.0)]; 
UIImage *OverlayImage = [[UIImage imageNamed:@"overlay.png"] autorelease]; 
overlayViewNew.image = OverlayImage; 
[starContainerView addSubview:overlayViewNew]; 

Comme vous pouvez le voir ci-dessus, j'ai mis le UIView et régler la UIImageView et a attribué une UIImage à ce UIImageView puis ajouté à une sous-vue de la vue.

Voici le code que j'utilise pour faire pivoter la vue.

- (void) accelerometer:(UIAccelerometer *)accelerometer 
    didAccelerate:(UIAcceleration *)acceleration { 
    if (fabsf(acceleration.x) > -1.0) { 
     CGAffineTransform landscapeTransform =  CGAffineTransformMakeRotation(degreesToRadian(90)); 
     landscapeTransform = CGAffineTransformTranslate (landscapeTransform, +80.0, +100.0); 
     [self.starContainerView setTransform:landscapeTransform]; 
    } 
    } 

Je ne peux tout simplement pas l'avoir pour combler cette lacune! Puis-je aussi dire qu'aucune science de fusée n'a été impliqué tout en développant cela, mais je ne peux toujours pas trouver la réponse.

Répondre

0

Si c'était le code suivant. J'ai joué avec les chiffres ci-dessous et cela a fonctionné.

CGAffineTransform landscapeTransform =  CGAffineTransformMakeRotation(degreesToRadian(90)); 
    landscapeTransform = CGAffineTransformTranslate (landscapeTransform, +80.0, +80.0); 
0

Un écart de 20px peut avoir un rapport avec la barre d'état qui n'est pas masquée correctement. Assurez-vous d'avoir ceci dans votre info.plist:

<key>UIStatusBarHidden</key> 
<true /> 
+0

Oui, je l'ai déjà activé dans le fichier plist. Cependant, il semble que cela puisse être quelque chose à voir avec la barre d'état car c'est cette taille. – SteveU