gpt4 book ai didi

ios - 在 iOS7 中以编程方式旋转 MKMapView

转载 作者:技术小花猫 更新时间:2023-10-29 10:14:21 27 4
gpt4 key购买 nike

我有一个应用程序目前使用 CGAffineTransformMakeRotation 来操作 MKMapView,以便以正确的方向和大小显示 map 。随着 iOS7 的发布,这种方法变得不可靠( map 中心不断移动)。我希望通过更可靠的解决方案来解决这个问题。

有没有一种方法可以在不使用 CGAffineTransformMakeRotation 的情况下在代码中旋转 map ?

我查看了 MKMapCamera,希望我可以操纵它传递静态值来操纵 map ,但是无法手动设置中心坐标和眼睛坐标。

最佳答案

您可以通过使用 -setCamera:animated: 设置新的 MKMapCamera 来旋转和俯仰 map 。

要设置旋转,给它一个新的heading参数:

- (void)viewDidAppear:(BOOL)animated // or wherever works for you
{
[super viewDidAppear:animated];

if ([mapView respondsToSelector:@selector(camera)]) {
MKMapCamera *newCamera = [[mapView camera] copy];
[newCamera setHeading:90.0]; // or newCamera.heading + 90.0 % 360.0
[mapView setCamera:newCamera animated:YES];
}
}

您还可以通过俯仰和高度变化进行更花哨的缩放,显示建筑物:

- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];

if ([mapView respondsToSelector:@selector(camera)]) {
[mapView setShowsBuildings:YES];
MKMapCamera *newCamera = [[mapView camera] copy];
[newCamera setPitch:45.0];
[newCamera setHeading:90.0];
[newCamera setAltitude:500.0];
[mapView setCamera:newCamera animated:YES];
}

}

关于ios - 在 iOS7 中以编程方式旋转 MKMapView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18936839/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com