Iphone 层上的动画不';我不想被移除
我有一个面具,我已经建立了感谢层和图像。我想移动这个层与小“跳跃”(没有一个很好的翻译动画) 问题是,每当我移动遮罩层的帧时,就会出现动画。我试着打电话给Iphone 层上的动画不';我不想被移除,iphone,ios,core-animation,calayer,mask,Iphone,Ios,Core Animation,Calayer,Mask,我有一个面具,我已经建立了感谢层和图像。我想移动这个层与小“跳跃”(没有一个很好的翻译动画) 问题是,每当我移动遮罩层的帧时,就会出现动画。我试着打电话给[maskLayer RemoveAllianimations]但它不会改变任何东西 在我的代码中,我根本没有放任何动画,所以我不明白这个动画来自哪里 启动此功能时: -(void) moveAlternativeMask:(CALayer*) maskLayer { NSLog (@"moveAlternativeMask %@",
[maskLayer RemoveAllianimations]代码>但它不会改变任何东西
在我的代码中,我根本没有放任何动画,所以我不明白这个动画来自哪里
启动此功能时:
-(void) moveAlternativeMask:(CALayer*) maskLayer {
NSLog (@"moveAlternativeMask %@", NSStringFromCGRect(maskLayer.frame));
// Change the frame of the layer
CGRect originalFrame = maskLayer.frame;
CGFloat newYPos = maskLayer.frame.origin.y + 5.;
maskLayer.frame = CGRectMake (originalFrame.origin.x, newYPos, originalFrame.size.width, originalFrame.size.height);
// Try removing all animations on the layer
NSLog (@"Animations");
for (NSString* animationKey in maskLayer.animationKeys) {
NSLog(@" Animation With Key %@", animationKey);
}
NSLog (@"End animations");
[maskLayer removeAllAnimations];
NSLog (@"Animations after removing");
for (NSString* animationKey in maskLayer.animationKeys) {
NSLog(@" Animation With Key %@", animationKey);
}
NSLog (@"End animations after removing");
// Launch the animation with a small delay
[self performSelector:@selector(moveAlternativeMask:) withObject:maskLayer afterDelay:0.5];
}
我得到这个日志:
----moveAlternativeMask{{0,200},{768,643}----
动画
带关键点的动画:位置
结束动画
删除后的动画
删除后结束动画
---移动可选掩码{0,205},{768,643}
动画
带关键点的动画:位置
结束动画
删除后的动画
删除后结束动画
---moveAlternativeMask{{0,210},{768,643}
动画
带关键点的动画:位置
结束动画
删除后的动画
删除后结束动画
因此,层被移动,因为我想,唯一的问题是,“位置”动画不断回来
请注意,CALayer是这样构建的:
UIImage *maskImage = [UIImage imageNamed:@"masque2.png"];
self.maskLayer = [CALayer layer];
self.maskLayer.contents = (id) maskImage.CGImage;
self.maskLayer.frame = CGRectMake(0, ORIGINAL_Y_POSITION, 768, 643);
[myView.layer setMask:self.maskLayer];
嗯,很奇怪。我有两个想法:
用UIView
来代替它是否可行
您是否可以尝试从超级视图中删除和添加子视图
,而不只是更改帧
1-我不知道如何在不使用图层的情况下指定遮罩。你…吗?2-是的,当我移除上一个遮罩层并在正确的位置构建一个新的遮罩层时,它就起作用了。我想这对性能不好,但在iPad上似乎还可以。谢谢