0

UILongPressGestureRecognizerアプリで次のメソッドを宣言しており、mapView でオンとオフを切り替えるスイッチを実装したいと考えています。

- (IBAction)addNewPin:(UISwitch *)sender {

if (sender.on) {

NSLog(@"ON!!");
}

else {

NSLog(@"OFF!!");
}

}


- (IBAction)didPressForPin:(UILongPressGestureRecognizer *)sender {

CGPoint point = [sender locationInView:self.mapView];
CLLocationCoordinate2D locCoord = [self.mapView convertPoint:point toCoordinateFromView:self.mapView];

MKPointAnnotation *pa = [[MKPointAnnotation alloc]init];
pa.coordinate = locCoord;
pa.title = @"Test Title!";
[mapView addAnnotation:pa];


NSLog(@"Pressed!!");


}

ジェスチャレコグナイザーまたは実装を追加または削除できることは知ってい.enabled = NOますが、switch メソッドで実装する方法がわかりません。

4

1 に答える 1

1

longPressGestureRecognizerプロパティがあると仮定すると、次のようなものが役立ちます。

@synthesize longPressGestureRecognizer = _longPressGestureRecognizer;

- (UILongPressGestureRecognizer *)longPressGestureRecognizer
{
    if (_longPressGestureRecognizer) {
        return _longPressGestureRecognizer;
    }

    _longPressGestureRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPressGesture:)];
    return _longPressGestureRecognizer;
}


- (IBAction)toggleAddPinSwitch:(UISwitch *)sender
{
    if ([sender isOn]) {
        [self.mapView addGestureRecognizer:self.longPressGestureRecognizer];
    } else {
        [self.mapView removeGestureRecognizer:self.longPressGestureRecognizer];
    }
}
于 2012-10-12T20:09:36.370 に答える