как определить, какое панорамное представление находится в каком индексе

#ios #iphone #objective-c

#iOS #iPhone #objective-c

Вопрос:

У меня есть приложение с 3 uiimageviews на экране. к каждому из них подключена uipangesture. У меня возникли проблемы с определением, какое панорамное представление переходит в какое поле. (см. Изображение ниже.) Белые поля определяют, есть ли в них панорамное представление с помощью CGRectContainsPoint(). Моя основная проблема заключается в извлечении текста из меток, которые находятся в представлениях изображений. Поскольку они всегда будут разными, как я могу узнать из 1, 2, 3 вида индексации, какой вид панорамирования находится в каком поле?

Вот мой код.

     if (pan.state == UIGestureRecognizerStateEnded)
    {
          _countSoFar;   // _countSoFar is an iVar

        if (CGRectContainsPoint(self.view1.frame, pan.view.center)) {
            pan.view.tag = 1;
        }
        else if(CGRectContainsPoint(self.view2.frame, pan.view.center)) {
            pan.view.tag = 2;
        }
        else pan.view.tag = 3;

        NSLog(@"counts = %d", _countSoFar);
    }
    if (_countSoFar == carLevels)
    {

        NSString *s1 = [[self.view viewWithTag:pan.view.tag].subviews[0] text];

        _countSoFar = 0;  //reset count
    }
 

Проблема с моим кодом в том, что я могу получить только 1 текстовое значение, потому что вложенные просмотры имеют только 1 на просмотр…Я не могу этого понять. Любая помощь будет оценена!

Вот изображение:

iimage

Ответ №1:

У вас есть два варианта:

  1. Установите свойство UIImageView и в обработчике события gesture recongnizer получите прикрепленный UIImageView и определите соответствующий контент на основе заданного вами индекса.
  2. Подкласс UIPanGestureRecognizer, добавьте новое поле с именем index и используйте его для захвата жестов, а затем индекса из этого

Комментарии:

1. хорошо, хорошо, какой из них, по вашему мнению, проще всего выполнить?

2. ОК. Поэтому, когда я заканчиваю каждый жест панорамирования, я бы проверил, является ли pan.view UIImageView, и если это так, то я бы установил для его тега значение любого индекса?