iPhone Xcode Camera Integration Tutorials [zamknięty]

Potrzebuję pomocy. Muszę zintegrować kamerę z moją aplikacją i chcę dowiedzieć się o następujących rzeczach:

  1. potrzebuję przycisku aparatu na widoku, aby kliknięcie go otworzyło widok kamery.
  2. robię zdjęcie
  3. muszę kodować, aby mieć dostęp do galerii telefonu, a następnie wyświetla zdjęcie w innym widoku.

Czy ktoś mógłby wskazać mi właściwy kierunek?

Author: Emil, 2011-06-17

2 answers

Dobrze, UIImagePickerController jest narzędziem, którego potrzebujesz. Zrobi większość rzeczy z tej listy kontrolnej.

Dla przycisku możesz utworzyć niestandardowy przycisk z grafiką lub jeśli planujesz użyć paska narzędzi lub paska nawigacyjnego do trzymania przycisków, możesz utworzyć przycisk paska za pomocą UIBarButtonSystemItemCamera pozycji systemu. To da ci obraz ramy.

Po dotknięciu go, utworzysz instancję UIImagePickerController i zaprezentujesz ją modalnie.

UIImagePickerController * imagePicker = [[UIImagePickerController alloc] init];
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.delegate = self;
[self presentModalViewController:imagePicker animated:YES];
[picker release];

Jak zapewne zauważyłeś że ma on właściwość delegate zdefiniowaną jako id < UIImagePickerControllerDelegate, UINavigationControllerDelegate> delegate;, więc będziesz musiał przyjąć oba protokoły, ale w większości przypadków zaimplementujesz tylko dwie metody - imagePickerControllerDidCancel: i imagePickerController:didFinishPickingMediaWithInfo:. Istnieje inna metoda w protokole UIImagePickerControllerDelegate, ale jest ona przestarzała. Nie używaj go, nawet jeśli widzisz, że wiele o nim wspomniałeś. Można oczekiwać, że obsługa anulowania będzie napisana w ten sposób,

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
    [self dismissModalViewControllerAnimated:YES];
}

Inne metody są tam, gdzie robisz większość rzeczy.

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    UIImage * image = [info objectForKey:UIImagePickerControllerEditedImage];

    // You have the image. You can use this to present the image in the next view like you require in `#3`.

    [self dismissModalViewControllerAnimated:YES];
}

Robienie zdjęcia odbywa się automatycznie przez UIImagePickerController instancja. Jeśli jednak chcesz nadpisać ich kontrolki, możesz to zrobić, ustawiając showsCameraControls na NO, a następnie implementując własne cameraOverlayView. Jeśli to zrobiłeś i przypisałeś przycisk do zrobienia zdjęcia, możesz faktycznie uruchomić akcję obrazu za pomocą metody takePicture. Więc to powinno adresować #2.

Możesz użyć innych właściwości, aby dostosować selektor obrazu. Na przykład, użytkownik może ograniczyć się tylko do robienia zdjęć przy użyciu właściwości mediaTypes.

 52
Author: Deepak Danduprolu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-16 15:05:19

Parafrazując dokumenty, {[0] } jest przestarzały od iOS6. Zamiast tego użyj dismissViewControllerAnimated:completion:.

 0
Author: Robin Macharg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-11 14:59:27