【发布时间】:2010-10-27 15:00:44
【问题描述】:
我有以下代码:
-(void)viewDidLoad
{
//Set Zoom level using Span
MKCoordinateSpan span;
span.latitudeDelta = 0.05;
span.longitudeDelta = 0.05;
region.span = span;
}
-(void)locationChange:(CLLocation *)newLocation: (CLLocation *)oldLocation
{
// This zooms in on the users current loation.
curlocation = newLocation.coordinate;
region.center = curlocation;
[_mapView setRegion:region animated:TRUE];
}
最初根据 ViewDidLoad 中的代码设置缩放级别。如何存储用户放大或缩小的缩放级别 ID,因为每次收到新的位置更新时,缩放级别都会重置。
有没有办法检测用户放大或缩小?
更新
我添加了 regionDidChangeAnimated 方法如下:
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
{
NSLog(@"Region DID change. Center is now %f,%f, Deltas=%f,%f",
region.center.latitude, region.center.longitude,
region.span.latitudeDelta, region.span.longitudeDelta);
}
日志中的输出如下:
2010-11-01 15:17:29.317 Legginit[2948:307] 区域 DID 更改。
中心现在是 54.181150,-8.483177,Deltas=0.050000,0.050000
2010-11-01 15:17:30.553 Legginit[2948:307] 区域 DID 更改。
中心现在是 54.181150,-8.483177,Deltas=0.050000,0.050000
2010-11-01 15:17:31.063 Legginit[2948:307] 区域 DID 更改。
中心现在是 54.181150,-8.483177,Deltas=0.050000,0.050000
2010-11-01 15:17:31.653 Legginit[2948:307] 区域 DID 更改。
中心现在是 54.181150,-8.483177,Deltas=0.050000,0.050000
2010-11-01 15:17:32.582 Legginit[2948:307] 区域 DID 更改。
中心现在是 54.181150,-8.483177,Deltas=0.050000,0.050000
2010-11-01 15:17:33.608 Legginit[2948:307] 区域 DID 更改。
中心现在是 54.181150,-8.483177,Deltas=0.050000,0.050000
当我放大手机时,我预计 Delta 值会发生变化,但它们仍保持在 0.05。我是否误解了这是如何工作的。我想我可以捕获 Delta 值并存储它们,这样如果用户退出并重新进入地图,我可以重置缩放级别。
问候, 斯蒂芬
【问题讨论】: