UIScrollView
たくさんのテキストが含まれているがあります。ユーザーが上にスクロールすると、上部に少し色から透明のビューが作成されるので、テキストが落ちたようには見えません。
scrollViewが正常に機能している、デリゲートが設定されているなど。
これはすべてうまく機能し、ダンディであり、私はこれを取得します(これは私が欲しいものです):
スクロールする前に:
下にスクロールし始めると、次のように大きくなります。
上にスクロールすると、次のように縮小します。
問題:
しかし!速くフリックするscrollViewDidScroll:(UIScrollView *)scrollView
と、十分に速く呼び出されず、グラデーションのフレームが更新されないようです。チェックする必要のある別のscollViewデリゲートメソッドはありますか?あるいは、グラデーションを間違った方法で処理しようとしているのかもしれません。
scrollViewDidScroll:(UIScrollView *)scrollView
グラデーションフレームの更新を処理する私の方法は次のとおりです。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
//Only want our gradient to show if text is off screen
if (scrollView.contentOffset.y >= 0) {
//Dont want our gradient to be larger than 8 pixels tall
if (scrollView.contentOffset.y <= 8) {
//Grab our view that draws gradient frame
CGRect frm = self.shadeView.frame;
//Set it the size to be absolute value of our scrollView offset
frm.size.height = abs(scrollView.contentOffset.y);
//Set the frame
self.shadeView.frame = frm;
}
}
//If the scrollView is scrolled to the top we don't want to show our gradient so we set it's height to 0.
else {
CGRect frm = self.shadeView.frame;
frm.size.height = 0;
self.shadeView.frame = frm;
}
}