2013-12-09 2 views
1

Я разрабатываю приложение iOS, и у меня есть полный экран UIScrollView с UIImageView сверху и 2 UIButton внизу.Анимация в приложении UIScrollView iOS

Когда пользователь прокручивает, я хочу вставить анимацию в изображение (возможно, только постепенно изменяйте альфа-параметр).

Анимация коррелирует с прокруткой, например, если пользователь прокручивает половину прокрутки, будет отображаться только половина анимации.

Надеюсь, я объяснил сам.

Как я могу это сделать?

ответ

2

Используйте метод UIScrollViewDelegate scrollViewDidScroll:.

https://developer.apple.com/library/ios/documentation/uikit/reference/uiscrollviewdelegate_protocol/Reference/UIScrollViewDelegate.html#//apple_ref/occ/intfm/UIScrollViewDelegate/scrollViewDidScroll:

Но также проверить другие методы в этом делегатом.

Так, например, вы можете в конечном итоге что-то вроде (или изменить это для ваших нужд):

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

    float opacity = (100 - scrollView.contentOffset.y)/100.0; 
    opacity = (opacity < 0? 0 : opacity>1? 1 : opacity); 
    imageView.layer.opacity = opacity; 

} 

Вы также можете узнать от самих инженеров Apple. Проверьте видео WWDC, есть многие из них:

  • Исследуя Спиральные Отн прошивкой 7 (WWDC 2013)
  • Повышение User Experience с свитка Views (WWDC 2012)
  • Расширенный Методы ScrollView (WWDC 2011)
+0

действительно нравится, это то, что я искал. но у меня ошибка в строке 1: недопустимый операнд для двоичного выражения (int и CGPoint). Как я могу решить? –

+0

@ user3072993 Исправлено! Я пропустил пример .y на scrollView.contentOffset. Возможно, вы могли бы отметить это как свой ответ, если вам это понравится больше. –

+0

работает отлично .. спасибо! есть ли простой способ определить, прокручивается ли пользователь или прокручивается вниз? Я не вижу этого в методах делегата. –

0

Реализовать UIScrollView протокол делегата и использовать этот метод

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

} 

Здесь вы можете изменить значение альфа вашего UIImageView, регулируя непрозрачность слоя отображения вида:

imageView.layer.opacity = ... 

Это называется неявным анимация.

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