2010-09-10 14 views
6

Chcę umożliwić użytkownikom narysowanie obrazu na ekranie w trybie poziomym.Zestaw SDK dla iPhone'a: ​​tryb przechwytywania obrazu

Po naciśnięciu przycisku obraz ten powinien być przechowywany lokalnie na urządzeniu.

Używam tego przykładu kodu poniżej której działa pionowo http://www.ipodtouchfans.com/forums/showthread.php?t=132024

Moim problemem jest to, że staram się dostosować kod do trybie poziomym z mniejszego obszaru rysunku, ale to nie działa. Nie jestem pewien, dlaczego?

Wygląda na to, że istnieją trzy obszary, w których występują ograniczenia, które użytkownik może wprowadzić. Próbowałem zmienić rozmiar, ale to nie działa. czego mi brakuje?

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

Nie jest jasne, o co pytasz. Czy masz problemy z rysowaniem przez użytkownika części ekranu lub przechwytywaniem obrazu i przechowywaniem go? W jaki sposób twój kod "nie działa"? To znaczy: (a) Czego się spodziewałeś? i (b) Co się stało, zamiast tego? – Olie

+0

Czy możesz pokazać część kodu używanego do dostosowania w trybie poziomym z mniejszym obszarem rysowania? Być może nie robisz tego poprawnie. – fuzz

+0

"drawImage.frame = self.view.frame;" -> czy jesteś pewien, że właśnie to chcesz robić? zazwyczaj ustawiasz child.frame = self.view.bounds – Geoffroy

Odpowiedz

0

Jeśli chcesz mieć tylko widok poziomy. Następnie dodaj następujący kod na przykład: -

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

i przejdź do właściwości projektu i ustawić orientację urządzenia do Krajobrazowego Lewicy i Krajobrazowego Prawo

nadzieję, że to rozwiąże problem.

-1

Używam również tego kodu do rysowania, a kiedy przełączam się w tryb poziomy, daję ponownie ramkę dla naszego losowania. Lub widok, którego używasz do rysowania. Jeśli podajesz klasę UIView z klasy xib, lepiej jest ustawić ramkę trybu poziomego.

I tak, jedna rzecz, jeśli zrobić rysunek w trybie portretowym i przełączając się w tryb poziomy, to trzeba dostosować jego punkt końcowy i punkty bieżące, jak na danym obszarze.

Powiązane problemy