Ios 询问遮罩层顶部的CATextLayer
在我的应用程序中,我为UIImageView添加了一个遮罩,并将其设置为不透明度的一半。此外,还有一个计算机运行在该CALayer上 现在,我想在上面添加一个CATextLayer,它不能受遮罩层的影响。我该怎么做 谢谢 编辑:出现了一个新问题。不知何故,如果在animationDidStart中发送给CATextLayer的消息,动画将以相反的顺序执行Ios 询问遮罩层顶部的CATextLayer,ios,core-animation,calayer,Ios,Core Animation,Calayer,在我的应用程序中,我为UIImageView添加了一个遮罩,并将其设置为不透明度的一半。此外,还有一个计算机运行在该CALayer上 现在,我想在上面添加一个CATextLayer,它不能受遮罩层的影响。我该怎么做 谢谢 编辑:出现了一个新问题。不知何故,如果在animationDidStart中发送给CATextLayer的消息,动画将以相反的顺序执行 - (void)viewDidLayoutSubviews { for (int i=1; i<6; i++) { NSStr
- (void)viewDidLayoutSubviews {
for (int i=1; i<6; i++) {
NSString* intValue = [NSString stringWithFormat:@"%d", i];
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"path"];
animation.duration = 0.5;
animation.delegate = self;
animation.repeatCount = 0;
animation.autoreverses = NO;
[animation setValue:intValue forKey:@"animationString"];
animation.timingFunction = nil;
[animation setRemovedOnCompletion:NO];
[animation setFillMode:kCAFillModeForwards];
animation.fromValue = (id) [self getCGRectForZoomLevel:i];
animation.toValue = (id) [self getCGRectForZoomLevel:i + 1 ];
animation.beginTime = CACurrentMediaTime() + i * 2;
[self.shapeLayer addAnimation:animation forKey:intwaarde];
}
-(void)ViewDidLayoutSubView{
对于(inti=1;i,您应该重新考虑您的层次结构
将视图添加为容器,以将图像视图和文本层分组,使它们成为兄弟(与现在文本层是图像视图的子层时相比)
然后像已经做的那样屏蔽图像视图
Container // ⬅ this one is new
┃
┣━━ Image view ┅ (mask)
┃
┗━━ Text layer // ⬅ is now a sibling
我终于找到了解决办法。因为我把动画放进去了
-(无效)viewDidLayoutSubviews
一切都出了问题。我之所以使用这种方法,是因为它最初是github的其他项目。@Rönnqvist谢谢David!但是,我想在动画即将开始时更新此文本层,如:'-(void)animationDidStart:(CAAnimation*)动画{self.textLayer.string=[动画值forkey:@“animationString”];}'是什么将动画添加到层中?您仍然可以成为动画的代理,并使用animationDidStart:
对其作出反应。问题是您应该在哪里作为代理,这正是我所做的,并且确实调用了animationDidStart。但是,在-(void)中调用self.textLayeranimationDidStart以某种方式取消即将开始的动画。self.textLayer不是播放动画的层。它有点复杂。创建动画时,我使用:[animation setValue:textString forKey:@“animationString”]然后,在animationDidStart中:我尝试通过self.textLayer.string=[theAnimation valueForKey:@“animationString]”检索animationString值。
无论如何,这不起作用,应该与层次结构无关。它如何失败?它是否被调用?动画是否为nil?值是否为nil?