0

UIScrollView幅の水平があり960ます。

UIScrollViewは 3 が含まれUIView's、それぞれが背景色に設定されています。

1枚目はピンク、2枚目はブルー、3枚目はグリーンです。

私がする必要があるのは、ユーザーのスクロールに基づいて色 (ビュー) のアルファを変更することです。

したがって、ユーザーが最初の画面 (ピンク) にいて、2 ページ目 (青) にスクロールし始めると、ピンクが消え始め、青がより見やすくなり、ユーザーがその 2 ページ目に完全にスワイプすると、オールブルーになります。

1つだけを使用する場合の方法は次のUIViewとおりです。

func scrollViewDidScroll(scrollView: UIScrollView) {

        // Offset Percentage
        var percentageHorizontalOffset = scrollView.contentOffset.x / 320;

        // Reduce alpha
        pinkView.alpha = percentageHorizontalOffset
}

0.0パーセンテージが からになるので、これは簡単です。1.0

ただし、3 つの画面をサポートするようにコードを変更する必要があります。320上記の方法でを置き換えることでこれを以前に試しました960が、これによりいくつかの問題が発生します。

1 つ目は、0.0 から 1.0 の範囲のパーセンテージを取得できなくなったことです。2 ページ目をスクロールすると、1.0 から 2.0 の範囲になり、アルファを適切に変更するのに役立ちません。

2 つ目は、特に UIScrollView をすばやくスワイプしたときに、アルファの変化があまりスムーズに感じられないことです。これを機能させるために、以前に混乱したステートメントをセットアップしifましたが、何も機能しませんでした。

コンテンツ サイズが 1 つの画面よりも大きい場合に、UIView's3つすべてのアルファを適切にフェードするにはどうすればよいですか?contentOffset.xUIScrollView's

4

1 に答える 1