首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据帧设置视频CATextLayer?

如何根据帧设置视频CATextLayer?
EN

Stack Overflow用户
提问于 2015-08-03 05:35:19
回答 3查看 1.2K关注 0票数 1

我已经尝试了很多想法,但还没有成功,我的问题是,我有一个视频,我提供了一个功能,以编写文本的视频和拖/删除的视频现在我想设置的CATextlayer在视频上的位置是由用户设定,但它没有显示在适当的位置,所以请帮助我。

这是我用来做这个的代码。

代码语言:javascript
复制
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
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-08-03 11:53:58

解决了这个问题,请参阅下面的代码。这在视频上运行得很好。

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2015-08-03 05:44:04

您的代码看起来不错,但不确定所提供的框架是错误的还是正确的。如果您提供了正确的框架,那么添加以下代码:-

代码语言:javascript
复制
[titleLayer display];

现在就能用了!

票数 0
EN

Stack Overflow用户

发布于 2016-07-14 09:44:29

解决了这个问题,请参阅下面的代码。这个视频效果很好

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31780060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档