如何根据框架在video中设置CATextLayer?

我已经尝试了许多想法,但没有成功,我的问题是,我有一个video,我提供了一个function,在video上写文本,并拖放到video上的文本现在我魔棒设置CATextlayervideo与propper由用户设置的位置,但不显示在正确的位置,所以请帮助我。

这是我为此使用的代码。

CATextLayer *titleLayer = [CATextLayer layer];//<========code to set the text titleLayer.string = self.strText; titleLayer.font = (__bridge CFTypeRef)(self.fonts);; titleLayer.fontSize = titleLayer.fontSize; titleLayer.position = CGPointMake (titleLayer.fontSize,titleLayer.fontSize); //?? titleLayer.shadowOpacity = 0.5; titleLayer.alignmentMode = kCAAlignmentCenter; titleLayer.bounds = CGRectMake(self.rectText.origin.x,self.rectText.origin.y-52, 480, 480); //You may need to adjust this for proper display [titleLayer setBackgroundColor:[UIColor redColor].CGColor]; [parentLayer addSublayer:titleLayer]; //ONLY IF WE ADDED TEXT 

你的代码似乎很好,但不知道如果提供的框架是错误的或正确的。 如果你提供了正确的框架,那么最后添加这个代码: –

 [titleLayer display]; 

它现在会工作!

解决了这个问题,看看我下面的代码。 这与video工作正常。

 CATextLayer *titleLayer = [CATextLayer layer]; titleLayer.string = self.strText; titleLayer.font = (__bridge CFTypeRef)(self.fonts); titleLayer.fontSize = fontsize; titleLayer.masksToBounds = NO; titleLayer.foregroundColor = self.textColor.CGColor; titleLayer.alignmentMode = kCAAlignmentCenter; //[self.txtVideoText setBackgroundColor:[UIColor colorWithHue:255.0/255.0 saturation:255.0/255.0 brightness:255.0/255.0 alpha:0.4]]; //[self setAnchorPoint:self.txtVideoText.layer.anchorPoint forView:self.txtVideoText layer:titleLayer]; titleLayer.anchorPoint = CGPointMake(0.5, 0.5); titleLayer.frame = CGRectMake(xx,-(yy-CGRectGetHeight(self.viewHeader.frame)), 480, 480); //You may need to adjust this for proper display [parentLayer addSublayer:titleLayer]; //ONLY IF WE ADDED TEXT 

解决了这个问题,看看我下面的代码。 这与video工作正常

 CGFloat stickerX = (videoSize.width * (newsticker.frame.origin.x+imageView2.frame.origin.x))/_StickerView.frame.size.width; CGFloat stickerY = (videoSize.height * (newsticker.frame.origin.y+imageView2.frame.origin.y))/_StickerView.frame.size.height; titleLayer.frame = CGRectMake(stickerX,-(StickerY-CGRectGetHeight(self.viewHeader.frame)), 480, 480); //You may need to adjust this for proper display