ho un UIViewlayout automatico e AVCaptureVideoPreviewLayer
@property (nonatomic, strong) IBOutlet UIView *previewView;
previewView
in ultima analisi, visualizzare l'anteprima di quello che sta succedendo nella mia macchina fotografica sul mio iPhone utilizzando il seguente strato di anteprima.
@property (nonatomic, strong) AVCaptureVideoPreviewLayer *previewLayer;
devo vincoli impostati sul mio previewView
in storyboard e quindi sono in esecuzione nel seguente problema.
self.previewLayer.frame = self.previewView.bounds; // This doesn't work
self.previewLayer.videoGravity = AVLayerVideoGravityResize;
[self.previewView.layer addSublayer:self.previewLayer];
previewLayer
viene aggiunto al previewView sottolivello, ma non mostra nei giusti parametri (larghezza e altezza). Penso che questo sia dovuto all'utilizzo di vincoli sull'autolayout.
Come risolverei questo?
Update: Ho anche provato la seguente:
self.previewLayer.videoGravity = AVLayerVideoGravityResizeAspect;
CALayer *rootLayer = [previewView layer];
rootLayer.frame = self.previewView.bounds;
[rootLayer setMasksToBounds:YES];
[self.previewLayer setFrame:[rootLayer bounds]];
[rootLayer addSublayer:self.previewLayer];
e sembra mostrare come questo: http://cl.ly/image/3T3o0O1E3U17
Come arrivare vicino, ma ancora molto al largo.
Ho un problema simile. La mia immagine della fotocamera è molto simile alla tua, cioè c'è una grande barra vuota sul lato destro. Finora, ho capito che questo problema si verifica solo per me quando si utilizza Auto-Layout. – robert