0

У меня есть UIScrollView с некоторыми UIImageView внутри. Пользователь может добавить изображение из своей библиотеки или непосредственно с помощью своей камеры, а снимок будет показан внутри UIScrollView.Включить GestureRegnizer на UIImageView внутри UIScrollView

Я бы хотел, чтобы пользователь мог удалить UIImageView (обозначенный тегом, где tag = индекс изображения в моем массиве), но я не могу проверить, какой из UIImageView прослушивается! Только UIScrollView ...

У кого-то есть идея, как я мог это сделать?

EDIT 1:

Если бы я использовал это, я могу проверить кран на UIScrollView

UITapGestureRecognizer *singlTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(testGesture:)]; 
      singlTap.cancelsTouchesInView = NO; 
      [self.imagesScrollview addGestureRecognizer:singlTap]; 
+1

Показать код, который вы используете – Wain

+0

Хорошо, я отредактировал мое сообщение;) – Lapinou

+0

Как вы добавляете изображениеПросмотры в scrollview и каково имя вашего scrollview и какое имя вы используете для добавления изображения в scrollview – channi

ответ

0

С текущего кода вам нужно будет перебирать подвидов в целях прокрутки и ' нажмите тест "каждый, чтобы увидеть, что крана закончилась.

В качестве альтернативы, добавьте жест выделения для каждого изображения (вместо одного в режим прокрутки). Затем, когда кран распознается, у вас будет прямой доступ к представлению изображения через gesture.view.

0

Конечно, просто набор тегов для каждого ImageView, а затем в обработчике

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

    UIImageView *img = (UIImageView *)recognizer.view; 

    NSLog(@"%i", img.tag); 

} 
0

Вы должны добавить UITapGestureRecognizer в ImageView вместо Scrollview, когда вы добавляете его в свиток:

UITapGestureRecognizer *singlTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(testGesture:)]; 
      singlTap.cancelsTouchesInView = NO; 
      [self.imageToAdd addGestureRecognizer:singlTap]; 

- (void) testGesture:(UIGestureRecognizer*) sender 
{ 
    int tag = sender.view.tag; 
    // do your process here. 
} 
+0

Да, bu Когда я это сделаю, я не могу получить это событие ... Я не знаю, почему! Подобно subviews на UIScollView, нечувствительны – Lapinou

+0

, в этом случае вам нужно подклассифицировать 'UIScrollView' и переопределить' touchhesBegan'. и вы должны позвонить: '[self.nextResponder touchhesBegan: touchesEvent: event];' то же самое касается 'touchhesMoved',' touchesEnded' и 'touchesCancelled' – MAB

+0

Хорошо, я пытаюсь;) Спасибо! – Lapinou

Смежные вопросы