2013-10-12 5 views
0

У меня есть UIScrollView с UIViews в нем, и в этих UIViews есть UIImageViews. Я пытаюсь получить доступ к UIImageViews.Получение subviews UIView в UIScrollview

Для доказательства концепции, у меня есть Scrollview с UIView, который содержит UIImageView в нем, и чьи теги установлены на 0.

Код:

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ 

UIView *currentView = (UIView *)[scrollView viewWithTag:0]; 
UIImageView *currentImageView = (UIImageView *)[currentView viewWithTag:0]; 

[self bobbleView:currentImageView]; 

} 

И тогда я пытаюсь для того чтобы bob, что UIImageView вверх и вниз непрерывно (что другое дело само по себе, я могу только заставить его качаться один раз, чтобы я просто оставил этот код), но то, что происходит, это весь UIScrollView, а его подпункты находятся в режиме bobbing ,

Этот код:

-(void)bobbleView:(UIView *)viewIn{ 

     viewIn.transform = CGAffineTransformMakeScale(1.2, 1.2); 
     [UIView animateWithDuration:1 animations:^{ 
      viewIn.transform = CGAffineTransformMakeScale(1.0, 1.0); 
     }]; 

} 

Любые мысли?

+0

Выбор 0 для значения тега не может быть мудрым, так как это значение по умолчанию для всех вновь создаваемых UIView. Также 'viewWithTag' перемещает иерархию дочерних элементов (рекурсивно,« вниз »), что означает, что если вы не будете осторожны с вашими значениями тегов, вы можете получить представление, которое вы не хотели получить. – verec

ответ

0

Да .. Назначьте уникальные теги для просмотров и разных друг другу. Я уверен, что если вы установите точку останова в вызове bobbleView, ваш объект UIImageView будет вашим UiScrollView, а не просмотром изображения, а также UiView ... Используйте просто уникальные теги, например, 100X для UIViews и 200X для изображения.

+1

Вы назвали это .... в ретроспективе 0, вероятно, был лучшим худшим выбором для имени тега в его истории. –

+0

Да .... Поскольку все объекты Ui имеют тег 0! – Lefteris

1

viewWithTag док говорит:

Discussion 
This method searches the _current view_ and all of its subviews for the specified view. 

(курсив мой)

Что вы видите, что:

(UIImageView *)[currentView viewWithTag:0] 

возвращается

currentView 

НТН

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