2013-04-16 12 views
24

Mam kontroler widoku w moim scenorysie z kilkoma UIButtonami. Jednym z nich aktywuje warstwę AVFoundation podglądu kamery pokazany na podwarstwy:CALayer - Umieść podwarstwę poniżej storyboardów UIButtons?

captureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session]; 
captureVideoPreviewLayer.frame = self.view.bounds; 
[self.view.layer addSublayer:captureVideoPreviewLayer]; 

to działa poprawnie z wyjątkiem faktu, że warstwa podglądu jest renderowane na szczycie moich przycisków tak, mimo że przyciski są nadal klikalne nie są one w stanie być widoczne dla użytkownika. Czy istnieje łatwy sposób umieszczenia podwarstwa pod przyciskami? Lub łatwy sposób na podniesienie przycisków w warstwie? Dziękuję bardzo!

Odpowiedz

43

Warstwy przycisków są wszystkie podwarstwami warstw głównego widoku. Musisz umieścić warstwę podglądu kamery pod warstwami przycisku. Wypróbuj to:

// put it behind all other subviews 
[self.view.layer insertSublayer:captureVideoPreviewLayer atIndex:0]; 

// or, put it underneath your buttons, as long as you know which one is the lowest subview 
[self.view.layer insertSublayer:captureVideoPreviewLayer below:lowestButtonView.layer]; 
+0

Pierwszy z nich działał. Ale w przypadku przyszłego referendum, w jaki sposób mogę znaleźć nazwę warstw, na których znajdują się przyciski? – golmschenk

+1

Po dodaniu przycisków w programie Interface Builder należy połączyć je z IBOutlet dla przycisków w kodzie kontrolera widoku. W ten sposób masz dla nich właściwości. Lub możesz mieć właściwość ** tag ** w IB, a następnie znaleźć je za pomocą znacznika widoku przycisku. Czy to odpowiedziała na twoje pytanie? – stevekohls

+0

Znalazłem '' '[self.view.layer insertSublayer: captureVideoPreviewLayer below: lowestButtonView.layer];' '' działa lepiej dla mojego przypadku –

2

Tylko dodać. Można podnieść dowolną podklasę UIView w warstwie, wywołując metodę UIView method bringSubviewToFront.

[self.view bringSubviewToFront:self.desiredButton]; 
+0

Nie działa dla mnie. Spróbowałeś? – Jaybo