Я использую следующий код, чтобы добавить около 29 изображений в UIScrollView
.Last imageView tapped UIScrollView
- (void)setupHorizontalScrollView
{
_scrollViewEffects.delegate = self;
[_scrollViewEffects setCanCancelContentTouches:NO];
_scrollViewEffects.clipsToBounds = NO;
_scrollViewEffects.scrollEnabled = YES;
_scrollViewEffects.pagingEnabled = YES;
NSUInteger nimages = 0;
NSInteger tot=0;
CGFloat cx = 0;
for (; ; nimages++) {
NSString *imageName = [NSString stringWithFormat:@"e%d.png", nimages];
UIImage *imageThumb = [UIImage imageNamed:imageName];
[imageView setTag:nimages];
if (tot==29) {
break;
}
if (4==nimages) {
nimages=0;
}
imageView = [[UIImageView alloc] initWithImage:imageThumb];
UITapGestureRecognizer *singleTap =
[[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(handleSingleTap:)];
singleTap.numberOfTapsRequired = 1;
[imageView addGestureRecognizer:singleTap];
CGRect rect = imageView.frame;
rect.size.height = 50;
rect.size.width = 50;
rect.origin.x = cx;
rect.origin.y = 0;
imageView.layer.borderColor = [UIColor whiteColor].CGColor;
imageView.layer.borderWidth = 1;
imageView.frame = rect;
[_scrollViewEffects addSubview:imageView];
cx += imageView.frame.size.width+5;
tot++;
}
//self.pageControl.numberOfPages = nimages;
[_scrollViewEffects setContentSize:CGSizeMake(cx, [_scrollViewEffects bounds].size.height)];
[imageView setUserInteractionEnabled:YES];
}
- (void)handleSingleTap:(UIGestureRecognizer *)sender
{
NSLog(@"image tapped!!!");
}
Как вы можете видеть, UserInteraction активизирован, все работает, но код определяет отводы только для последнего изображения от UIScrollView. Что не так?
Это потрясающе. Большое спасибо. Скажите, пожалуйста, как я могу проверить, какое изображение было затронуто? Как вы видели в моем коде, я пытался добавить теги к каждому изображению внутри цикла, но я понятия не имею, как проверить. Я попытался: if (imageView.tag == 1) {NSLog (@ "tag 1"), но не работает –
Когда handleSingleTap: срабатывает, распознаватель жеста передается в параметре. У распознавателя жестов есть свойство view, которое является видом, к которому он был прикреплен. – danh