2012-04-10 2 views
1

私はImageViewののimageView.On touch上でタッチイベントを呼びたい、私はImage.Iのピクセルを取得したいが、これを使用しています: -imageViewでtouchEventを呼び出して、UIimageViewで画像のピクセルを取得するにはどうすればよいですか?

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
UITouch *touch = [[event allTouches] anyObject]; 
[sampleImage setBackgroundColor:[UIColor redColor]]; 
//CGPoint location = [touch locationInView:self.view]; 
if ([touch view] == sampleImage) 
{ 

    url1 = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/Na.wav", [[NSBundle mainBundle] resourcePath]]]; 
    [sampleImage setBackgroundColor:[UIColor colorWithRed:10.0/255.0 green:10.0/255.0 blue:10.0/255.0 alpha:1.0]]; 
} 
NSError *error; 
audio = [[AVAudioPlayer alloc] initWithContentsOfURL:url1 error:&error]; 
audio.numberOfLoops = 0; 
[audio play]; 
[sampleImage setBackgroundColor:[UIColor redColor]]; 
} 

はそれが可能ですはい、その後助けてくださいか? 。 ありがとうございました。

+1

を行く 'userInteractionEnabled'プロパティ – beryllium

答えて

3

あなたのImageViewのにジェスチャー認識を追加する必要がありますし、代理人があなたのために演奏音を処理してみましょう。あなたのviewDidLoadで

は、次のように実装します。

あり
- (void)tapGesture:(UIGestureRecognizer*)sender { 
NSString *path = [[NSBundle mainBundle] pathForResource:@"YourSound" ofType:@"mp3"]; 

    AVAudioPlayer * theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL]; 
    theAudio.delegate = self; 
    [theAudio play]; 
    [theAudio release]; 
} 

あなたが行く:あなたのコードで

UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGesture:)]; 
    tap.numberOfTapsRequired = 1; 
    [YourImageView addGestureRecognizer:tap]; 
    [tap release]; 

を使用すると、デリゲートなど演奏音を置くことができます!

EDIT:


次を実装touchesMovedとオプションの上に使用するには:そこ

- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *) event { 
     UITouch *touch = [[event allTouches] anyObject]; 
      CGPoint location = [touch locationInView:self.view]; 
     if ([touch view] == YourImageView) { 
     //play the sound 
     NSString *path = [[NSBundle mainBundle] pathForResource:@"YourSound" ofType:@"mp3"]; 

      AVAudioPlayer * theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL]; 
      theAudio.delegate = self; 
      [theAudio play]; 
      [theAudio release]; 

     } 
    } 

あなたは:)

+0

私はこのメソッドを使用することができます - (void)touchesBegan:(NSSet *)touches withEvent :(UIEvent *)event ???? –

+0

ええ、絶対に、私は私の答えを編集します。 – BarryK88

+0

: - たくさんありがとうございます:) –

0

あなたはUITapGestureRecognizerを使用することができますし、あなたのimageviewとしてtargetを設定することができます。

enter image description here

+0

参照私は、このメソッドを使用することができます - (void)touchesBegan:(NSSet *)withEvent :(UIEvent *)eventをタッチ???? –

関連する問題