我在UIViewController中有UIView
MKMapView
,只有在用户点击按钮时才会显示。
流程如下:
CLLocationManager
对象在header
文件中声明为私有成员。UIView
的{{1}}(最初框架位于边界之外。移动到用户操作的视图边界内,同时在MKMapView
内)。初始化:
viewController
使用locationManager = [[CLLocationManager alloc] init];
locationManager.distanceFilter = kCLDistanceFilterNone; // whenever we move
locationManager.desiredAccuracy = kCLLocationAccuracyBest; // 100 m
[locationManager startUpdatingLocation];
CLLocation *location = [locationManager location];
CLLocationCoordinate2D coordinate = [location coordinate];
MKCoordinateSpan span = MKCoordinateSpanMake(0.04, 0.04);
MKCoordinateRegion region = MKCoordinateRegionMake(coordinate, span);
mapView.showsUserLocation = YES;
[mapView setRegion:region animated:YES];
现在,我希望在从可见边界移除Foursquare API
时停止位置锁定。
我用view
试了一下。我还stopUdatingUserLocation
released
,但GPS锁定图标在locationManager
中是持久的。据我所知,连续GPS锁定会耗尽电池电量,我想阻止它。我该怎么做呢?
答案 0 :(得分:2)
即使没有正式记录,在整个应用程序中只使用一个CLLocationManager会更好。将其视为单身,不要每次都初始化它,它应该正常工作。