[英]How to create Login with Facebook or twitter in ios6 iphone App
[英]iOS6 iPhone App — How to zoom to userLocation only once?
以下代码是我一直用于放大用户位置的方法,但是一旦用户移动地图,它便会停止将其连续重新缩放至该位置。 这种方法的问题在于,当它向应用程序中的用户位置数据请求权限时,如果我选择“是”,它不会执行任何操作。 我必须离开页面并返回,然后才能正确缩放。
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
if ([self.mapView showsUserLocation])
{
MKCoordinateRegion region;
region.center = self.mapView.userLocation.coordinate;
MKCoordinateSpan span;
span.latitudeDelta = .50; // Change these values to change the zoom
span.longitudeDelta = .50;
region.span = span;
[self.mapView setRegion:region animated:YES];
self.mapView.showsUserLocation = NO;}
}
上面的方法应该监视用户位置更改,然后在找到位置后对其进行设置。 然后,我在if语句中设置一个条件以使其停止- 否则,当您四处移动地图时,它会不断移回到用户位置。
在我看来, self.mapView.showsUserLocation
在出现弹出窗口时设置为FALSE
,因为它尚不知道用户的位置。 为了解决这个问题,我建议您只使用自己的变量。 在此类中创建一个全局布尔值,并使用它代替self.mapView.showsUserLocation。 另外,请确保实际上在用户同意弹出窗口之后调用此函数。 您去过NSLogging吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.