Como trabalhar com imagens em aplicativos ios
Abaixo demonstramos como trabalhar com imagens em aplicativos iOS, a um nível de abstração semelhante a trabalhar com gravações de vídeo. Comece mostrando como as variáveis são inicializadas no método ViewDidLoad (especificamente, observar a inicialização do localImage variável de membro).
Conteúdo
Video: Ganhar dinheiro vendendo fotos no FOAP - Dicas para usar o aplicativo
- (Void) viewDidLoad {[super viewDidLoad] - // faça qualquer configuração adicional depois de carregar o view.NSString * ImagePath = [[NSBundle mainBundle] pathForResource: @"Images.bundle / BookFront"OfType: @"png"] -localImage = [[UIImage alloc] initWithContentsOfFile: ImagePath] -}
Aqui você vê como as imagens são mostradas:
- (IBAction) ShowImage: (ID) remetente {imageView.image = localImage- [imageView setNeedsDisplay] -}
Finalmente, aqui é o método takeImage que contém o código para tirar a fotografia:
- (IBAction) takeImage: (ID) remetente {UIImagePickerController * imagePicker = [[UIImagePickerController alloc] Init] -imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera-imagePicker.mediaTypes = [[Alloc] NSArray initWithObjects: (NSString *) kUTTypeImage, nil] -imagePicker. delegado = auto - [[UIApplication sharedApplication] setStatusBarHidden: YES] - [auto presentViewController: imagePicker animado: SIM conclusão: nil] -}
O código para capturar uma imagem estática é quase idêntico ao que, para gravar um vídeo. A única diferença é que a propriedade mediaTypes do objeto imagePicker está definido para kUTTypeImage (enquanto ele é definido como kUTTypeMovie ao gravar um vídeo).
Video: PHOTOSHOP FIX - MELHOR APLICATIVO PARA FOTOS
Até agora, você provavelmente está boringly familiarizado com o uso do controlador de vista como um objeto delegado para imagePicker e com o propósito dos dois métodos seguintes: imagePickerControllerDidCancel e didFinishPickingMediaWithInfo. Este imagePickerControllerDidCancel é chamado quando o usuário cancela a operação:
- (Void) imagePickerControllerDidCancel: (UIImagePickerController *) selecionador {[[UIApplication sharedApplication] setStatusBarHidden: NO] - [selecionador dismissViewControllerAnimated: SIM conclusão: nil] -}
Como você pode ver, didFinishPickingMediaWithInfo é chamado após a foto ser tirada. Aqui, a imagem recém-tirada é definido na exibição da imagem do controlador de exibição de imagem.
- (Void) imagePickerController: (UIImagePickerController *) pickerdidFinishPickingMediaWithInfo: (*) NSDictionary resultados {localImage = (UIImage *) [resultados objectForKey: UIImagePickerControllerOriginalImage] -imageView.image = localImage- [imageView setNeedsDisplay] - [[UIApplication sharedApplication] setStatusBarHidden: NÃO] - [selecionador dismissViewControllerAnimated: SIM conclusão: nil] -}
O código para usar o gravador de vídeo dentro de um aplicativo e o código para a tomada de imagens, bem como o código para o envio de e-mail e SMS são muito semelhantes em estrutura. Em ambos os casos, um objecto de um controlador de visualização específicos de tarefa é instanciado pelo controlador vista actualmente em execução.
No caso de e-mail, é o MFMailComposeViewController- no caso SMS, é o MFMessageComposeViewController- e nos casos de gravação de vídeo e captura de imagem, é o UIImagePickerController. O controlador de vista atualmente em execução, em seguida, define-se como um delegado dentro do controlador de vista de tarefas específicas. Finalmente, o controlador de vista específico da tarefa é apresentada, e as saídas do controlador de vista atuais.
Quando o controlador de visualização específicos de tarefa (isto é, o exemplo da UIImagePickerController, o MFMailComposeViewController, ou o MFMessageComposeViewController) sai, o método delegado do controlador de vista original é chamada, quer para processar os dados devolvidos pelo gravador ou a câmara ou lidar com erros e cancelamentos.