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.
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:-
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
- How do I make a semi-transparent view layer above a current view?
- Where to Write Shared Application Data -Between Users in OSX
- How to send and receive custom data with AirDrop
- Interface Builder can't see classes in a static library
- cellForRowAtIndexPath never called in UITableViewController
- Why Xcode 9 beta does not show index options for CoreData entities and attributes?
- sqlite3_prepare_v2 is getting SQLITE_ERROR
- Pick random element of NSArray in Objective-C
- How do I upload files using http/ftp to iphone/ipad? (Eg. ifile, goodreader)
- SMPTE TimeCode from Quick Time
- Firebase crash reporting for iOS doesn't send crashes despite successful init
- animations on infinite loop
- Calling two different custom cell in one UITableView issue
- How to simulate HTTP form (POST) submit on iOS
- How to use one IBAction for multiple buttons in Swift?