0

マップとデリゲートについて質問があります。私は本から演習を行っていますが、その方法を使用するように言われています

- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
    //CLLocationCoordinate2D loc = [userLocation coordinate];
    self.coord2D = [userLocation coordinate];

    //MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(loc, 250, 250);
    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(self.coord2D, 250, 250);

    [worldView setRegion:region animated:YES];
}

つまり、携帯電話を自分の場所から移動するたびに、自分自身が画面に表示されます。このメソッドを呼び出すボタンも作成します。したがって、地図をスクロールすると、自分がどこにいるかがわかります。

問題は、車に乗っていてマップをスクロールしたい場合、場所を変更するたびにこのメソッドが呼び出されるため、難しい作業になることです。

他の方法はありますか、またはデリゲートをアクティブ化および非アクティブ化するオプションがある場合は?

前もって感謝します。

4

1 に答える 1

1

私が知る限り、それは非常に単純です。それをアクティブ化および非アクティブ化するためのボタンがあるだけです。

- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
    //CLLocationCoordinate2D loc = [userLocation coordinate];
    self.coord2D = [userLocation coordinate];

    if (self.trackUserLocation) {
        //MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(loc, 250, 250);
        MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(self.coord2D, 250, 250);

        [worldView setRegion:region animated:YES];
    }
}

プロパティ:

@property (nonatomic, assign) BOOL trackUserLocation;

ボタンのアクション:

self.trackUserLocation = !self.trackUserLocation;

それ以上難しくする必要はありません。

于 2012-07-05T00:46:09.850 に答える