Name: CameraAVFoundation
Owner: Droids On Roids
Description: null
Created: 2016-03-06 19:47:58.0
Updated: 2016-03-15 08:25:30.0
Pushed: 2016-03-13 21:47:34.0
Homepage: null
Size: 92
Language: Swift
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
W repozytorium znajduje si? klasa s?u??ca do osb?ugi kamery, któr? nale?y wykorzysta? do realizacji zadania. Klasa implemntuje protokó? CameraManagerProtocol zawieraj?cy metody klasowe. Dzi?ki temu bez konieczno?ci tworzenia obiektu mo?emy operowa? na kamerze, wykonuj?c na niej ró?ne operacje:
ic func generateCameraPreview(previewSize size: CGSize, completion: (sessionPreviewView: UIView?) -> ())
Metoda ta wykonuj? si? asynchronicznie, dlatego jednym z parametrów jest closure completion. Zwraca on nam widok z kamery. Otrzymany obiekt typu UIView, który nawiasem mówi?c jest opcjonalny, nale?y doda? do g?ównego widoku kontrollera. Mo?na to zrobi? nast?puj?co:
screenFrame = UIScreen.mainScreen().bounds
previewDimension = CGSize(width: CGRectGetWidth(screenFrame), height: CGRectGetHeight(screenFrame))
meraManager.generateCameraPreview(previewSize: previewDimension) { [unowned self] sessionPreview in
guard let preview = sessionPreview else { return }
self.view.addSubview(preview)
ic func switchCamera(completion: (sessionPreviewView: UIView?) -> ())
Do tego celu nale?y wykorzysta? metod?, która równie? zwraca nam w closure widok z kamery. Tutaj jednak musimy zadba? o to ?eby usun?? poprzedni podgl?d i zast?pi? go widokiem z przeciwnej kamery. Podpowied?: przechowywa? aktualny widok z kamery jako zmienn? w klasie kontrolera. Dzi?ki temu mo?na go ?atwo usun?? z struktury widoku za pomoc?
.removeSubview(cameraPreview)
Do wywo?ywania tej metody u?yjmy akcji przycisku!
ic func toggleFlashMode(bool: Bool)
Ta metoda klasy CameraManager umo?liwia w??czenie lampy aparatu. W parametrze nale?y zdecydowa? czy chcemu j? w??czy? lub wy??czy?. Równiez i w tym przypadku warto w jaki? sposób przechowywa? w kontrollerze aktualny stan lampy b?yskowej. Tym bardziej w tym przypadku poniewa? przycisk b?dzie zmienia? kolor!
ic func takePhoto(completion: (UIImage?) -> ())
Ostatnia metoda, ale najwa?niejsza poniewa? zwraca nam zdj?cie. Równie? metoda asynchroniczna wymagaj?ca closure.