1

我在 UIViewController 中UIView有一个MKMapView, ,它仅在用户点击按钮时出现。

过程如下:

  • 一个CLLocationManager对象在header文件中被声明为私有成员。
  • AUIView出现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。我也是releasedlocationManager,但是GPS锁图标是持久化的statusBar。据我了解,连续 GPS 锁定会耗尽电池电量,我想停止这种情况。我该怎么办?

4

1 回答 1

2

即使没有正式记录,在整个应用程序中只使用一个 CLLocationManager 会更好。把它当成一个单例,不要每次都初始化它,它应该可以正常工作。

于 2013-09-20T13:38:39.840 回答