use*_*323 0 objective-c mkmapview ios catransaction
我在iOS编码.
我有一个NSArray,其中包含一些MKMapCameras.我想一个接一个地从数组中显示MKMapCameras.
我放了一个while循环并使用了 [self.mapView setCamera:nextCamera animated:YES];
但是,这只显示了第一个和最后一个视图.介于两者之间的一切都太快了.
我想减慢每个相机的运动速度.有没有办法使用CATransaction或使用任何其他动画技巧来实现它.如果是这样,你能告诉我一个示例代码吗?
想要提供更新...我试过下面的代码.但它不起作用......正如我前面提到的,相机移动速度很快.
[CATransaction begin];
[CATransaction setAnimationDuration:5.5];
[CATransaction setAnimationTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[CATransaction setCompletionBlock:^{
[self.mapView setCamera:nextCamera animated:YES];
}];
[CATransaction commit];
Run Code Online (Sandbox Code Playgroud)
在摆弄了几个小时之后,我找到了一种方法来使它工作.想与大家分享......
我做了两处改动.我用UIView的动画取代了CATransaction.我还删除了Camera的默认动画设置,这与UIView的动画相冲突.
下面是代码.
[UIView beginAnimations:nil context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
[UIView setAnimationDuration:2.5];
self.mapView.camera = nextCamera;
[UIView commitAnimations];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2497 次 |
| 最近记录: |