注: 以下の UPDATE 回答に新しいソリューションを追加しました。
iPhone/iPod touch の Mobile Safari のタブで見た効果を再現してみました。
基本的に、これは 4 つの再利用可能な UIView (リング バッファーのように機能する) を保持し、水平方向にスクロールする UIScrollView です。スクロールすると、UIView の不透明度がオフセットでシームレスにフェードイン/フェードアウトします。
現在、私は ですべての汚い仕事をしてい- (void)scrollViewDidScroll:(UIScrollView *)scrollViewます。UIScrollView から contentOffset を取得する、ページングを決定する、contentOffset と各 UIView の位置の間のデルタを計算する、呼び出された瞬間の各 UIView のアルファ値を決定/設定するなどscrollViewDidScroll:。
そしてそれは機能し、パフォーマンスは問題なく、すべてがスムーズに実行されますが、唯一の問題は計算が多すぎることです.
UIView のbeginAnimations:とを試しcommitAnimations:ましたが、 でscrollViewDidScroll:は役に立ちません。1) 新しいアルファ値はまだ自分で計算する必要があり、2) scrollViewDidScroll: スクロール時に呼び出され続けているため、ここでアニメーションを実行しても意味がありません。この部分をCore Animationで書き直す方法はありますか?そのため、各 UIView のアルファ値を自分で計算する必要はありません。代わりに、作品全体を Core Animation に任せることができます。