tsuyushiga's blog

備忘録です。

【Objective-C】UIScrollViewでスクロールに合わせたアニメーション

UIScrollViewを使うとき、スクロールに合わせてビューが消えたり、出現したりするアニメーションを表現したいときのメモです。
(環境:xcode5, iOS7)

スクロールビューをスクロールしたときに呼び出されるメソッド「- (void)scrollViewDidScroll:(UIScrollView *)scrollView」に実装します。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    // スクロールしたときにページが変わるようにする
    CGFloat pageWidth = scrollView.frame.size.width;
    CGFloat contentWidth = scrollView.contentSize.width;
    CGFloat contentOffset = scrollView.contentOffset.x;
    if ((NSInteger)fmod(contentOffset, pageWidth) == 0) {
        pageControl.currentPage = contentOffset / pageWidth;
        currentPage = pageControl.currentPage;
    }
    // imageViewが最後のページのときだけ消えるようにする
    CGFloat baseOffset = (contentWidth - (pageWidth * 2.0));
    if (contentOffset >= baseOffset) {
        CGFloat delta = contentOffset - baseOffset;
        imageView.alpha = 1.0 - (delta / pageWidth);
    }
}

イメージビューのalpha値をスクロールに合わせて変えてるだけです。。