Tag: catransaction

核心animation警告:“未提交的CATransaction”

我只收到以下警告: CoreAnimation: warning, deleted thread with uncommitted CATransaction; created by: 0 QuartzCore 0x3763c65d <redacted> + 220 1 QuartzCore 0x3763c541 <redacted> + 224 2 QuartzCore 0x3763fe2f <redacted> + 30 3 QuartzCore 0x3763b9bf <redacted> + 318 4 QuartzCore 0x3763b87b <redacted> + 50 5 QuartzCore 0x3763b80b <redacted> + 538 6 MyApp 0x000df597 -[CommonClass orangeGradient:] + 382 7 MyApp […]

在CABasicAnimation中闪烁以进行旋转

我正在试图从一个angular度旋转一个CAShapeLayer,只要按下一个button,它就会从当前angular度开始旋转。 我正在使用委托函数animationDidStop在animation结束时设置图层的变换,因为我已经注意到animation只改变了表示层的变换而不是本身的图层。 但是在animation结束时,animation完成时,由于图层在委托函数animationDidStop中更新转换之前返回到其上一个变换,animation中会出现随机闪烁。 我如何消除闪烁? @implementation ViewController – (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag { [CATransaction begin]; [CATransaction setValue: (id) kCFBooleanTrue forKey: kCATransactionDisableActions]; self.parentLayer.transform = CATransform3DRotate(self.parentLayer.transform, DEG2RAD(60.0), 0, 0, 1); [CATransaction commit]; } – (IBAction)rotateBySixtyPressed:(id)sender { CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; animation.duration = 3.0; animation.byValue = [NSNumber numberWithFloat:DEG2RAD(60.0)]; [animation setDelegate:self]; [self.parentLayer addAnimation:animation forKey:animation.keyPath]; }

如何减慢MKMapCamera运动?

我在iOS中编码。 我有一个NSArray,其中包含几个MKMapCameras。 我想要一个接一个地从数组中显示MKMapCameras。 我把一个while循环,并使用[self.mapView setCamera:nextCamera animated:YES]; 但是,这只是显示第一个和最后一个意见。 中间的一切都过得太快了。 我想减慢每台摄像机的移动速度。 有没有办法使用CATransaction或使用任何其他animation技巧来实现它。 如果是这样,请给我一个示例代码? 想要更新…我尝试了下面的代码。 但它不工作…像我前面提到的那样,摄像机的移动速度很快。 [CATransaction begin]; [CATransaction setAnimationDuration:5.5]; [CATransaction setAnimationTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; [CATransaction setCompletionBlock:^{ [self.mapView setCamera:nextCamera animated:YES]; }]; [CATransaction commit];

沿着上次更新的GPS坐标Swift iOS平滑移动和旋转GMSMarker

我正在使用GMSMapView 。 所以我添加了自定义的GMSMarker,并设置图像(例如Bike图像),并在用户开始移动时更改animation标记,并在locationManager中更改标记的angular度。 目前我只是更新GMSMarker的位置属性。 但它给了GMSMarker跳跃效应。 而不是这个,我想移动和 GMSMarker 顺利/正确地 旋转到GMSMapView。 我如何在Swift中实现这一点? 谢谢。 (void)updateLocationoordinates(CLLocationCoordinate2D) coordinates { if (marker == nil) { marker = [GMSMarker markerWithPosition:coordinates]; marker.icon = [UIImage imageNamed:IMAGE]; marker.map = mapView; } else{ marker.position = coordinates; } }

使用核心animation对图像进行sorting,接收内存警告

我收到内存警告使用100animation图像,所以我试图使用核心animation,而是这给了我同样的问题。 这是因为我不知道如何在当前代码中使用replaceSublayer UIView* upwardView=[[UIView alloc]init]; [upwardView setFrame:CGRectMake(0, 0, 1024, 768)]; [self.view addSubview:upwardView]; NSArray *animationImages=[NSArray arrayWithObjects:[UIImage imageNamed:@"001.png"],[UIImage imageNamed:@"001.png"],[UIImage imageNamed:@"002.png"],[UIImage imageNamed:@"003.png"],….,nil]; CAKeyframeAnimation *animationSequence = [CAKeyframeAnimation animationWithKeyPath: @"contents"]; animationSequence.calculationMode = kCAAnimationLinear; animationSequence.autoreverses = YES; animationSequence.duration = 5.00; animationSequence.repeatCount = HUGE_VALF; NSMutableArray *animationSequenceArray = [[NSMutableArray alloc] init]; for (UIImage *image in animationImages) { [animationSequenceArray addObject:(id)image.CGImage]; } CALayer *layer = […]

如何检测由CATransaction触发的animation的完成?

我有一个CALayer,我只是创build并添加到我的视图控制器的主视图在控制器的initWithNibName的子视图:然后,我执行以下animation: [CATransaction begin]; [CATransaction setAnimationDuration:2]; [logoLayer setOpacity:0]; [CATransaction commit]; 如何知道这个animation何时完成? performSelector:延迟2秒。 方法似乎并不是“正确的方式”去做。

在事务内调用

如果我在从服务中加载数据的同时closuresiPad应用程序,应用程序将closures,但是会立即再次打开,而无需执行任何操作。 在这一点上,我无能为力。 我无法closures应用程序,我无法与应用程序或设备进行交互。 再次使用设备的唯一方法是重新启动它。 该应用程序不会崩溃,它只是禁用该设备。 发生这种情况时,以下行在applicationWillResignActive和applicationDidEnterBackground之后立即出现在控制台中三次: +[CATransaction synchronize] called within transaction 如果应用程序崩溃几乎可以,但是设备完全无用的事实是一个巨大的问题。 如果我可以拦截这个bug或以某种方式检测CATransaction引发这个问题,那就没事了。 有任何想法吗?