gpt4 book ai didi

ios6 - map View 打开 iOS 时动画缩放到位置/ map 地标

转载 作者:行者123 更新时间:2023-12-04 22:33:43 28 4
gpt4 key购买 nike

我在其他应用程序(例如 ios 6 星巴克)上看到它,当我的 map View 打开时,我希望它显示整个英国/不列颠群岛的区域,然后我希望它放大到我指定的位置区域点我有.

更新代码:

- (void)viewDidLoad
{

[super viewDidLoad];
// Do any additional setup after loading the view.
[mapView setMapType:MKMapTypeStandard];
[mapView setZoomEnabled:YES];
[mapView setScrollEnabled:YES];
MKCoordinateRegion region = { {0.0, 0.0 }, { 0.0, 0.0 } };
region.center.latitude = 54.5;
region.center.longitude = -3.5;
region.span.longitudeDelta = 10.0f;
region.span.latitudeDelta = 10.0f;
[mapView setRegion:region animated:NO];

[self performSelector:@selector(zoomInToMyLocation)
withObject:nil
afterDelay:2]; //will zoom in after 1.5 seconds
}

-(void)zoomInToMyLocation
{
MKCoordinateRegion region = { {0.0, 0.0 }, { 0.0, 0.0 } };
region.center.latitude = 51.502729 ;
region.center.longitude = -0.071948;
region.span.longitudeDelta = 0.19f;
region.span.latitudeDelta = 0.19f;
[mapView setRegion:region animated:YES];

[mapView setDelegate:self];

[self performSelector:@selector(selectAnnotation)
withObject:nil
afterDelay:0.5]; //will zoom in after 0.5 seconds

}

-(void)selectAnnotation
{

DisplayMap *ann = [[DisplayMap alloc] init];
ann.title = @"Design Museum";
ann.subtitle = @"Camberwell, London";
ann.coordinate = region.center;
[mapView addAnnotation:ann];

}

不知道它是否正确,因为错误是这一行
ann.coordinate = region.center;

最佳答案

如果要先显示一个区域然后放大,则必须发出两个或多个 setRegion打电话是因为 setRegion本身并不能让您控制动画的起始区域或速度。

viewDidLoad ,设置初始区域的span所以整个英国都是可见的(尝试使用 10.0 的增量而不是 0.15 )。你也可以设置animatedNO对于初始区域。

然后在 viewDidLoad 结束前,安排在几秒钟后执行放大:

- (void)viewDidLoad
{
...

[self performSelector:@selector(zoomInToMyLocation)
withObject:nil
afterDelay:5]; //will zoom in after 5 seconds
}
zoomInToMyLocation方法可能如下所示:
-(void)zoomInToMyLocation
{
MKCoordinateRegion region = { {0.0, 0.0 }, { 0.0, 0.0 } };
region.center.latitude = 51.502729 ;
region.center.longitude = -0.071948;
region.span.longitudeDelta = 0.15f;
region.span.latitudeDelta = 0.15f;
[mapView setRegion:region animated:YES];
}

使用 performSelector 时可能需要注意的一件事如果在计划运行调用之前关闭或取消分配 View ,则取消挂起的调用。例如,如果用户在加载 View 两秒后关闭 View 。三秒钟后,调度的方法可能仍会被调用,但由于 View 消失而会崩溃。为避免这种情况,请取消 viewWillDisappear: 中的任何未决执行。或在适当的地方:
[NSObject cancelPreviousPerformRequestsWithTarget:self];

关于ios6 - map View 打开 iOS 时动画缩放到位置/ map 地标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13745115/

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