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's
3つすべてのアルファを適切にフェードするにはどうすればよいですか?contentOffset.x
UIScrollView's