私は画像ビューでURLから画像を呼び出すアプリケーションを持っています。画像ビューは、スクロールビューのサブビューとして追加されます。私の実装ファイルで私はこのコードを使用しています検出していない画像ビューをタップ
- (void)loadView {
[super loadView];
// add gesture recognizers to the image view
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap:)];
UITapGestureRecognizer *twoFingerTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTwoFingerTap:)];
[doubleTap setNumberOfTapsRequired:2];
[twoFingerTap setNumberOfTouchesRequired:2];
NSURL *imgUrl=[[NSURL alloc] initWithString:@"http://www.deviantart.com/download/80153093/Sexy_Kabuto_by_dark_tarou.jpg"];
NSData *imgData = [NSData dataWithContentsOfURL:imgUrl];
UIImage *img = [UIImage imageWithData:imgData];
imageView = [[UIImageView alloc] initWithImage:img];
// set the tag for the image view
[imageView setTag:ZOOM_VIEW_TAG];
[imageView addGestureRecognizer:singleTap];
[imageView addGestureRecognizer:doubleTap];
[imageView addGestureRecognizer:twoFingerTap];
[singleTap release];
[doubleTap release];
[twoFingerTap release];
[self.imageScrollView addSubview:imageView];
[imgUrl release];
// calculate minimum scale to perfectly fit image width, and begin at that scale
float minimumScale = [imageScrollView frame].size.width/[imageView frame].size.width;
[imageScrollView setMinimumZoomScale:minimumScale];
[imageScrollView setZoomScale:minimumScale];
NSLog(@"%d",imageView.tag);
}
私はシミュレータ上で実行すると、タップ認識機能を検出しませんでした。ちょうど漏洩 - 場所でないプールに自動解放クラスのUIViewのオブジェクト0x4e412d0:01:46.999 ImageScroll [443:1907] * __NSAutoreleaseNoPool()コンソールウィンドウにこのメッセージ
2011-08-01 10を示し それ表示されるように、このコードではエラーは何ですか」 変数にアクセスすることができません 『singleTap』を 変数にアクセスすることができません 『ダブルタップ』を 変数にアクセスすることができません 『ダブルタップ』を
変数「ダブルタップ」 にアクセスすることができません。このタイプのメッセージ。
をお試しください: - [self.viewのsendsubviewtoback:yourscrollView]; [yourscrollview bringubviewtofront:imageview]; bあなたのscrollViewはyourImageviewの前に来るので、触れてはいけません.... scrollviewを削除した後にtp tapを一度試してみてください。そうすれば、ScrollViewに関連する問題であるかどうかわかります。 –
このメッセージは、スレッドを呼び出さずにautoreleasepoolを初期化していないときに表示され、ur機能が完了したら解放します。 – AJPatel