在我的應用程序中,我爲UIImageView添加了遮罩,並將其設置爲半透明。此外,CALayer上還有一個CAAnimation正在運行。在遮罩層上詢問CATextLayer
現在,我想在它上面添加一個CATextLayer,它不能被遮罩層影響。我怎樣才能做到這一點?
謝謝
編輯:出現了一個新問題。不知何故,如果發送給CATextLayer的消息是在animationDidStart中發送的,則動畫將以相反的順序執行。
- (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];
}
}
@Rönnqvist謝謝David!但是,我想在動畫即將開始時更新此文本層,如下所示:' - (void)animationDidStart :(CAAnimation *)theAnimation self.textLayer.string = [theAnimation valueForKey:@「animationString 「]; }' –
什麼是將動畫添加到圖層?您仍然可以成爲動畫的代表並使用'animationDidStart:'來對它作出反應。問題在於你應該在哪裏作爲代表 –
這正是我所做的和animationDidStart的確被調用的。但是,以 - (void)animationDidStart調用self.textLayer以某種方式取消即將開始的動畫。 self.textLayer不是動畫播放的圖層。 –