Я просто пытаюсь получить доступ к UIImageView, который был нажат, из UIScrollView.
Я нашел 2 способа достижения вышеуказанного в Интернете.
1-й метод: создайте жест касания на uiimageview перед добавлением его в scrollviewer.
Этот метод у меня не сработал. метод handleSingleTap никогда не вызывается.
У меня нет идей о том, что я делаю неправильно / почему это не работает.
UITapGestureRecognizer *singleTap =
[[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(handleSingleTap:)];
singleTap.numberOfTapsRequired = 1;
[imageView addGestureRecognizer:singleTap];
[singleTap release];
[framesSourceScrollview addSubview:imageView];
[imageView release];
- (void)handleSingleTap:(UIGestureRecognizer *)sender
{
NSLog(@"image tapped!!!");
}
2-й метод: подкласс UIScrollView
@interface SingleTapScrollViewer : UIScrollView {
}
@end
@implementation SingleTapScrollViewer
- (id)initWithFrame:(CGRect)frame
{
return [super initWithFrame:frame];
}
- (void) touchesEnded: (NSSet *) touches withEvent: (UIEvent *) event
{
// If not dragging, send event to next responder
if (!self.dragging)
[self.nextResponder touchesEnded: touches withEvent:event];
else
[super touchesEnded: touches withEvent: event];
}
@end
In the ViewController
- (void) touchesEnded: (NSSet *) touches withEvent: (UIEvent *) event
{
// Process the single tap here
NSLog(@"Scroll view single tapped. touches count : %d", touches.count);
UITouch *touch = [touches anyObject];
UIImageView *imgView = (UIImageView*)touch.view;
NSLog(@"tag is %@", imgView.tag);
}
При использовании этого метода респондент touchesDown действительно вызывается, но «[касается любого объекта]» - это не тот UIImageView, который был затронут.
Я попытался установить «тег» для каждого UIImageView, который я добавляю в scrollview с увеличивающимся счетчиком, но я получаю 0, независимо от того, какое изображение я нажимаю.
Я новичок в какао в целом, и я не знаете, как использовать этого респондента любым другим способом.
Любые предложения / подсказки были бы замечательными.
заранее спасибо.