2012-05-09 11 views
0

まず、Objective-Cで始めるといいと思います。ここでUIScrollViewでのワンタッチ検出

は私の挙のレイアウトです:MAINVIEW内部 MAINVIEW> ScrollView> ScrollView

内部ImageViewのMAINVIEWとscrollViewの両方がストーリーボードで作成されます。すべてのimageViewはプログラムで作成され、scrollViewのサブビューとして作成されます。

私はViewControllerという名前のクラスが1つしかありません。

ここに私の質問です: 私のscrollView内のImageViewでワンタッチを処理する方法はありますか?何かが明確でないかどうか私に知らせてください。

UPDATE:

NSString *imagePath = [NSString stringWithFormat:@"%@/%@ (%i).png", path, path, nbrImage]; 
      CGRect myImageRect = CGRectMake(40, 25 + (line*lenght), 75, 75); 
      self.img = [[UIImageView alloc] initWithFrame:myImageRect]; 
      [self.img setImage:[UIImage imageNamed:imagePath]]; 

      UITapGestureRecognizer* singleTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)]; 
      singleTapGestureRecognizer.numberOfTapsRequired = 1; 
      singleTapGestureRecognizer.numberOfTouchesRequired = 1;  
      singleTapGestureRecognizer.cancelsTouchesInView = NO; 
      [self.img addGestureRecognizer:singleTapGestureRecognizer]; 

      [self.scrollView addSubview:self.img]; 

- (void)handleSingleTapFrom:(UITapGestureRecognizer*)recognizer { 

    UIImageView* imageView = (id)recognizer.view; 
    NSLog(@"Test"); 
} 

EDIT:作品、@selectorに私が代わりにhandleSingleTapFromの書き込みhandleSingleTapをしました:

答えて

1

あなたが反応して、あなたが好きなセレクタを実行するためにあなたのImageViewのにするuicontrolを追加することができますワンタッチで。ただ、クリアする背景色、imageView.frameにフレームを設定し、あなたのImageViewののサブビューとしてコントロールを追加し、言う

[myControl addtarget:self action:@selector(whateverYouWantToDo) forControlEvents:UIConntrolEventTouchUpInside]; 

EDIT:

UIControl *myControl = [[UIControl alloc] initWithFrame:imageView.frame]; 
[myControl setBackgroundColor:[UIColor clearColor]]; 
[myControl addTarget:self action:@selector(doWork) forControlEvents:UIControlEventTouchUpInside]; 
[imageView addSubview:myControl]; 

そしてちょうど行うにdoWorkメソッドを実装あなたがしようとしていることは何でも。私はあなたの質問に誤解しているかもしれませんが、ユーザーがスクロールビューで画像に触れるときにアクションを実行する場合、これは私がやった方法です。

+0

は、私はその後touchsBeginのようなものを実装することがありますか?あなたは例を見せてもらえますか?ありがとう:) – Benjamin

+0

はい、あなたは私の質問を理解しています。ユーザーがImage1をタッチすると、mainViewにImage1を表示します。私はオリジナルのポストを編集しました – Benjamin

+0

また、あなたがやろうとしていることを達成するチュートリアルへのリンクもあります。 http://www.raywenderlich.com/130/how-to-write-a-custom-image-picker-like-uiimagepicker – geraldWilliam

1

UITapGestureRecognizerを使用してください。例えば、ハンドラメソッドで

UITapGestureRecognizer* singleTapGestureRecognizer = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)] autorelease]; 
    singleTapGestureRecognizer.numberOfTapsRequired = 1; 
    singleTapGestureRecognizer.numberOfTouchesRequired = 1;  
    singleTapGestureRecognizer.cancelsTouchesInView = NO; 
    [imageView addGestureRecognizer:singleTapGestureRecognizer]; 

- (void)handleSingleTapFrom:(UITapGestureRecognizer*)recognizer { 

    UIImageView* imageView = (id)recognizer.view; 
    ... 
} 
+0

'[[UITapGestureRecognizer alloc] initWithTarget:自己アクション:@selector(handleSingleTap :)] autorelease];' このコードでは、 'handleSingleTape'とは何ですか?私が実装しなければならない方法は?申し訳ありませんが、これは些細な質問の場合: – Benjamin

+0

あなたが正しいです、私の編集または署名の参照を参照してください。 – sergio

+0

オリジナルの投稿をいくつかのコードで編集しました – Benjamin

関連する問題