2

ジェスチャを使用してUIImageViewをスケーリングおよび回転しようとしています。インターネットでいくつかの例を見て実装しましたが、一緒に機能しません。

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    imgView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];
   // imgView.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height);
    imgView.image = [UIImage imageNamed:@"spotItInLondonIcon.png"];
    [imgView setContentMode:UIViewContentModeScaleAspectFit];
    [imgView setMultipleTouchEnabled:YES];
    [imgView setUserInteractionEnabled:YES];
    [self.view addSubview:imgView];

    UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinch:)];
    [imgView addGestureRecognizer:pinch];
    pinch.delegate = self;

    UIRotationGestureRecognizer *rotate = [[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(rotation:)];
    [imgView addGestureRecognizer:rotate];
    rotate.delegate = self;
}
-(void)pinch: (UIPinchGestureRecognizer*)sender
{
    CGFloat scale = sender.scale;
    imgView.transform = CGAffineTransformScale(imgView.transform, scale, scale);
    sender.scale = 1.0;
    NSLog(@"pinch executed");
}
-(void)rotation: (UIRotationGestureRecognizer*)rotationDetected
{
    CGFloat angle = rotationDetected.rotation;
    imgView.transform = CGAffineTransformRotate(imgView.transform, angle);
    rotationDetected.rotation = 0.0;
    NSLog(@"rotation executed");
}

次に、.hファイルにデリゲートを追加し、appdelegate.mにメソッドを追加しましたが、それでも一度に1つのジェスチャしか機能しません。

@interface ViewController : UIViewController <UIGestureRecognizerDelegate>

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return YES;
}

誰かが私を助けることができますか?

4

1 に答える 1

3

メソッドを適用する delegate.m??追加するクラスにメソッドを追加する必要があります ジェスチャ、あなたの場合は、viewcontroller.m

    - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return YES;
}

appdelegate.m ではなく、viewcontroller.m のこのメソッド

于 2012-12-16T09:27:48.860 に答える