0

我们的应用程序有一个与指南针方向对齐的旋转地图视图。我们反向旋转注释,使它们的标注保持水平以供阅读。这在 iOS5 设备上运行良好,但在 iOS6 上被破坏(使用与 iOS5 设备上使用的相同二进制文件和使用 iOS6 SDK 构建的二进制文件时会出现问题)。注释最初旋转到正确的水平位置,然后在短时间内恢复到未校正的旋转。我们看不到导致这种情况的任何事件。这是我们在 - (MKAnnotationView *)mapView:(MKMapView *)theMapView viewForAnnotation:(id )annotation 中使用的代码片段

CATransform3D transformZ = CATransform3DIdentity;
transformZ = CATransform3DRotate(transformZ, _rotationZ, 0, 0, 1);
annotation.myView.layer.transform = transformZ;

其他人看到这个并且有人对如何在iOS6上修复它有任何建议吗?

4

1 回答 1

3

我遇到了同样的问题,所以我的解决方法可能对你有用。我还向 Apple 提交了一个错误。对我来说,每次用户平移地图时,注释都会“不旋转”。

在我的代码中,我使用 CGAffineTransformMakeRotation 设置了旋转,并且我没有在 viewForAnnotation 中设置它,但是每当用户位置得到更新时。所以这和你有点不同。

我的解决方法是在 viewForAnnotation 方法的底部添加一个额外的小旋转。

if(is6orMore) {
        [annView setTransform:CGAffineTransformMakeRotation(.001)]; //iOS6 BUG WORKAROUND !!!!!!!
 }

所以对你来说,我不确定这是否有效,因为你的旋转方式不同并且在 viewForAnnotation 中进行。但是试一试。

花了我很长时间才找到,而我只是碰巧遇到了这个修复。

于 2012-10-05T20:06:46.523 回答