Telefoane

iOS: Cum se accesează camera foto și biblioteca în Swift

Autor: Peter Berry
Data Creației: 15 Iulie 2021
Data Actualizării: 10 Mai 2024
Anonim
GOOD FRIDAY | CELEBRATION OF THE LORD’S PASSION | LIVE STREAM | 3.30 PM IST
Video: GOOD FRIDAY | CELEBRATION OF THE LORD’S PASSION | LIVE STREAM | 3.30 PM IST

Conţinut

Web Designer, iOS, dezvoltator de aplicații mobile Android. Din Italia cu Iubire.

Declinarea responsabilității

Vă rugăm să nu uitați să testați codul acestui tutorial pe un dispozitiv real, deoarece iOS Simulator nu se ocupă de cameră.

Am făcut un proiect demonstrativ care arată astfel:

Proiectul meu eșantion are 3 butoane în controlerul principal:

  • Camera deschisa
  • Deschideți Photo Library
  • Salvați

Să începem prin a adăuga cei doi delegați necesari pentru ca acest tutorial să funcționeze, trebuie să îi plasați în clasa ViewController:


clasa ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

Am adăugat selectorul de imagini și delegații controlerului de navigație în codul nostru, acestea sunt incluse în cadrul UIKit, astfel încât să nu trebuie să importați niciun fișier suplimentar în pagina dvs. rapidă.

În proiectul meu de eșantion, a trebuit să creăm și o vizualizare a imaginii pentru a o utiliza mai târziu:

@IBOutlet slab var imagePicked: UIImageView!

Verificați următorul cod, magia care deschide camera pe dispozitivul dvs.:

@IBAction func openCameraButton (expeditor: AnyObject) {if UIImagePickerController.isSourceTypeAvailable (.camera) {var imagePicker = UIImagePickerController () imagePicker.delegate = self imagePicker.sourceType = .camera; imagePicker.allowsEditing = false self.presentViewController (imagePicker, animat: adevărat, finalizare: nul)}}

Ce face codul de mai sus? O vom explica rând cu rând:

  1. O instanță IBAction pentru buton, creată de ctrl + glisare de la butonul Deschidere cameră la pagina noastră ViewController.swift
  2. Verificați dacă Camera este disponibilă pe dispozitiv (ca tip de sursă)
  3. Aici declarăm o variabilă a controlerului de selectare a imaginilor
  4. Setați-l pe delegat
  5. Setați tipul sursei
  6. Aici îi spunem selectorului nostru de imagini să nu editeze o fotografie capturată, ceea ce înseamnă că nu vom primi ecranul negru cu un cadru pătrat imediat după ce ați făcut o fotografie.
  7. În cele din urmă, vă prezentăm controlerul camerei, acesta va apărea din partea de jos a ecranului, care este animația implicită iOS pentru deschiderea de noi ecrane.

Rulați proiectul, atingeți butonul și veți obține așa ceva:


Dispozitivul solicită accesarea camerei


Acum, să vedem cum să funcționăm butonul Open Photo Library:

@IBAction func openPhotoLibraryButton (expeditor: AnyObject) {if UIImagePickerController.isSourceTypeAvailable (.photoLibrary) {var imagePicker = UIImagePickerController () imagePicker.delegate = self imagePicker.sourceType =. imagePicker.allowsEditing = adevărat self.presentViewController (imagePicker, animat: adevărat, finalizare: nul)}}

Explicarea codului:

  1. O acțiune pentru buton, creată la fel cum am făcut-o pentru obiectul anterior
  2. Verificați dacă dispozitivul poate accesa o bibliotecă foto
  3. Declarați o altă variabilă a selectorului de imagini pentru o utilizare ulterioară
  4. Setați-l pe delegat
  5. Setați tipul sursei (rola camerei)
  6. De data aceasta am setat proprietatea care ne permite să edităm imaginea aleasă ca fiind adevărată, ceea ce înseamnă că vom obține o fereastră neagră cu un cadru pătrat unde ne putem mări, muta și decupa fotografia.
  7. În cele din urmă, vă prezentăm controlerul fototecii cu o animație standard din partea de jos a ecranului

Rulați proiectul și atingeți butonul, veți obține următoarele rezultate:

Acum trebuie să adăugăm un delegat la clasa noastră, pentru a spune aplicației noastre să obțină imaginea aleasă și să o plaseze în vizualizarea imaginii pe care am plasat-o pe ecranul principal. Vă rugăm să rețineți că următorul delegat va fi utilizat pentru ambele funcții ale acestui șablon:

func imagePickerController (_ selector: UIImagePickerController, didFinishPickingMediaWithInfo info: [String: AnyObject]) {let image = info [UIImagePickerControllerOriginalImage] ca! UIImage imagePicked.image = respingerea imaginii (animat: adevărat, finalizare: nul)}

  1. Instanța noastră de delegat. Un lucru grozav despre XCode este că puteți începe să tastați „imagine” și o listă a delegaților disponibili va apărea sub cursor, vă ajută să ridicați cea de care aveți nevoie.
  2. Aici îi setăm obiectul ca imagine aleasă din bibliotecă sau cameră.
  3. Aici renunțăm la controler și revenim la ecranul nostru principal.

Ne lipsește doar metoda butonului Salvare pentru a finaliza acest tutorial:

@IBAction func saveButt (expeditor: AnyObject) {var imageData = UIImageJPEGRepresentation (imagePicked.image, 0.6) var compressedJPGImage = UIImage (data: imageData) UIImageWriteToSavedPhotosAlbum (compressedJPGImage, nil, nil, NIA, , mesaj: „Imaginea dvs. a fost salvată în fototeca!”, delegat: nil, cancelButtonTitle: „Ok”) alert.show ()}

Linie cu linie:

  1. Acțiunea IBA a butonului
  2. Aici declarăm o variabilă NSData pentru imaginea noastră și o comprimăm la 0,6 calitate (puteți seta această valoare de la 0,0 la 1,0)
  3. Creați un nou UIImage și transmiteți-i datele făcute anterior
  4. Metodă simplă de a salva imaginea noastră în camera foto
  5. Aici creăm o alertă și îi dăm un titlu
  6. un mesaj
  7. niciun delegat în acest caz
  8. și titlul unui buton de anulare
  9. Spuneți-i UIAlertView să apară

Am terminat, puteți rula proiectul și vă puteți juca cu butoane, după ce ați închis controlerul selector de imagini, veți vedea imaginea aleasă și o veți salva în biblioteca foto:

Acest articol este corect și fidel, după cunoștințele autorului. Conținutul are doar scop informativ sau de divertisment și nu înlocuiește consilierea personală sau sfatul profesional în probleme de afaceri, financiare, juridice sau tehnice.

Posturi Noi

Mai Multe Detalii

Factorii umani care afectează căutarea vocală
Internet

Factorii umani care afectează căutarea vocală

Tamara Wilhite e te criitoare tehnică, inginer indu trial, mamă a doi copii și autor publicat în ci-fi și horror.Optimizarea căutării vocale au optimizarea motorului de căutare conver ațional e t...
Cele mai bune aplicații pentru drumeții
Telefoane

Cele mai bune aplicații pentru drumeții

Kymberly iubește ă e cufunde în multe hobby-uri: grădinărit productiv, meșteșug, cu ut, citit și tot ceea ce e te japonez.Drumețiile unt minunate pentru a pierde în greutate și pentru a creș...