2015-07-02 2 views
0

Я пытаюсь добавить простую текстовую надпись на предварительный просмотр видео. Предварительный просмотр видео отлично работает, но текстовая метка не может быть найдена. Компилятор также не дает мне никаких ошибок или предупреждений. Я знаю, что я смешиваю точечную нотацию там, но я не уверен, что это моя основная причина или нет.addSublayer over video preview в OSX

Это отрывок из моего .m файла:

@interface AVRecorderDocument() 
    @property (retain) AVCaptureVideoPreviewLayer *previewLayer; 
    @property (nonatomic, strong) NSTextField *labelVideoOverlay; 
@end 

- (void)windowControllerDidLoadNib:(NSWindowController *) aController 
{ 
    CALayer *previewViewLayer = [[self previewView] layer]; 

    self.labelVideoOverlay = [[NSTextField alloc] initWithFrame:CGRectMake(100, 120, 200, 40)]; 
    self.labelVideoOverlay.stringValue = @"TEST"; 
    self.labelVideoOverlay.backgroundColor = [NSColor blackColor]; 
    self.labelVideoOverlay.textColor = [NSColor whiteColor ]; 

    [previewViewLayer setBackgroundColor:CGColorGetConstantColor(kCGColorBlack)]; 
    AVCaptureVideoPreviewLayer *newPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:[self session]]; 
    [newPreviewLayer setFrame:[previewViewLayer bounds]]; 

    [newPreviewLayer setAutoresizingMask:kCALayerWidthSizable | kCALayerHeightSizable]; 

    [previewViewLayer addSublayer: self.labelVideoOverlay.layer]; 
    [previewViewLayer addSublayer:newPreviewLayer]; 

    [self setPreviewLayer:newPreviewLayer]; 
    [newPreviewLayer release]; 
} 

ответ

0

Похоже, хотя вы добавили просмотр видео в качестве подслоя, вам все еще нужно добавить наложение как подвид на главную страницу , Я сделал что-то подобное в последнее время (только с UIImageView), но главный должен все равно быть тем же.

self.overlayImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"overlaygraphic.png"]]; 
self.overlayImageView.translatesAutoresizingMaskIntoConstraints = NO; 
[[self view] addSubview:self.overlayImageView]; 

Таким образом, вы могли бы сделать что-то вроде:

self.labelVideoOverlay = [[NSTextField alloc] initWithFrame:CGRectMake(100, 120, 200, 40)]; 
self.labelVideoOverlay.stringValue = @"TEST"; 
self.labelVideoOverlay.backgroundColor = [NSColor blackColor]; 
self.labelVideoOverlay.textColor = [NSColor whiteColor ]; 
[[self view] addSubview:self.labelVideoOverlay]; 
+0

Это сделал это. Мне пришлось просто изменить [self view] на [self previewView]. Благодаря! – Photovor

+0

Отлично, рад, что это сработало! – narner

+0

виртуальные бонусные баллы, если вы можете сказать мне, как получить ярлык ярлыка. NSColor clearColor только сделал его белым. – Photovor