How to set CATextLayer in video according to frame?

I have try many think but no success yet, My question is that I Have one video on that I was provide a functionality to write text over the video and drag/drop that text over the video now I wand to set CATextlayer on video with propper position which was set by user but its not display on proper position so please help me.

This is my code which was I used for this.

  • How to get text in a CATextLayer to be clear
  • Play AVMutableComposition with AVPlayer?
  • Auto Focus and Auto Exposure in AVFoundation on Custom Camera Layer
  • Can't Play AVPLayer Local Video from
  • Remote mp3 file taking a lot of time to play in swift ios
  • Pan Gesture with AVPlayer
  • 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
    

    3 Solutions Collect From Internet About “How to set CATextLayer in video according to frame?”

    Your code seems fine, but not sure if the frame provided is wrong or right. If you have provided the right frame then add this code, in the end:-

    [titleLayer display];
    

    It will work now!

    Solved the issue see my below code. This was working fine with 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
    

    Solved the issue see my below code. This was working fine with 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