Итак, я перебираю цикл и создаю UIView
s, которые содержат UIImageView
s (чтобы я мог выборочно показать любую заданную часть). Эти UIView
все хранятся в UIScrollView
.
Я добавляю распознаватели жестов к UIView
в цикле, в котором я их создал.
Когда я запускаю программу, распознаются только жесты, изначально видимые в UIScrollView
. Если я прокручиваю до ранее скрытых предметов и затем нажимаю на них, ничего не происходит вообще (жест никогда не распознается или не пытался быть).
Код инициализации:
UITapGestureRecognizer* gestRec = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture:)];
gestRec.delegate = self;
[imageholder addGestureRecognizer:gestRec];
Код, который относится к жесту:
- (void)handleGesture:(UIGestureRecognizer *)gestureRecognizer
{
float count = [self._imageHolders count];
NSLog(@"handling gesture: %f",count);
while(count--){
UIView* object = (UIView*) [self._imageHolders objectAtIndex:count];
// NSLog(@"Whats going on: %@, %@, %b",object,gestureRecognizer.view, object == gestureRecognizer.view);
if(object == gestureRecognizer.view){
object.alpha = .1;
count = 0;
}
// [object release];
}
}
Есть идеи?
---- Обновление:
Я изучил множество доступных функций в scrollview
, UIView
и распознавателе жестов и попытался поиграться с границами на случай, если что-то обрезается таким образом ... Интересно, что если таковая имеется элемент виден только частично, и вы перемещаете его так, чтобы он был полностью виден, только видимая часть распознает любые жесты.
Я недостаточно знаю, как распознаватель жестов работает в архитектуре UIKit
, чтобы понять эту проблему. Пример Apple для скролл-просмотра с жестами, похоже, не имеет этой проблемы, но я не могу найти никаких реальных отличий, кроме того, что я вкладываю свои UIImageViews
в их собственные UIViews