2010-09-10 33 views
6

Quiero permitir a mis usuarios dibujar una imagen en su pantalla en modo horizontal.iPhone SDK: modo de captura de imagen en el paisaje

Al presionar el botón, esa imagen debe almacenarse localmente en el dispositivo.

estoy usando este ejemplo de código que funciona verticalmente http://www.ipodtouchfans.com/forums/showthread.php?t=132024

Mi problema es que estoy tratando de ajustar el código para el modo horizontal con un área de dibujo más pequeño, pero no está funcionando. No estoy seguro ¿por qué?

Parece haber tres áreas que implican los límites que el usuario puede dibujar. He intentado cambiar el tamaño, pero parece que no funciona. ¿Qué me estoy perdiendo?

Orignally: 

viewDidLoad: 
drawImage = [[UIImageView alloc] initWithImage:nil]; 
drawImage.frame = self.view.frame; 

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { 

UIGraphicsBeginImageContext(self.view.frame.size); 
    [drawImage.image drawInRect:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
... 
} 

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { 

UIGraphicsBeginImageContext(self.view.frame.size); 
     [drawImage.image drawInRect:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
... 
} 
+1

No está claro lo que estás preguntando. ¿Tiene problemas con el dibujo del usuario en la parte de la pantalla o con la captura de la imagen y su almacenamiento? ¿De qué manera su código "no funciona"? Es decir: (a) ¿Qué esperabas que sucediera? y (b) ¿Qué pasó, en cambio? – Olie

+0

¿Puede mostrar la porción del código que usa para ajustar el modo horizontal con un área de dibujo más pequeña? Quizás no estés haciendo esto correctamente. – fuzz

+0

"drawImage.frame = self.view.frame;" -> ¿estás seguro de que eso es lo que quieres hacer? generalmente configura child.frame = self.view.bounds – Geoffroy

Respuesta

0

Si está destinado a tener solo vista horizontal. A continuación, añada el siguiente código al ejemplo: -

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    if (interfaceOrientation==UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight) 
     return YES; 
    else 
     return NO; 
} 

y vaya a proyectar propiedades y establecer la orientación del dispositivo a izquierda horizontal ypaisaje derecho

Hope esto va a resolver su problema.

-1

También estoy usando ese código para dibujar y cuando estoy cambiando al modo de paisaje estoy dando marco de nuevo para nuestra imagen dibujada. O la vista que está utilizando para dibujar. Si está dando su clase UIView de la clase xib, entonces es mejor establecer el marco de modo paisaje desde allí.

Y sí, una cosa es hacer un dibujo en modo vertical y cambiar al modo horizontal, entonces tiene que ajustar su último punto y los puntos actuales según su área.

Cuestiones relacionadas