したがって、サイズを変更する必要がある ScrollView 内に imageView を取得しました。
私がしたことは、 UIScrollViewDelegate を設定し、scrollViewDidScroll
メソッドを使用してスクロールオフセットに基づいて画像のサイズを変更することです
- (void)scrollViewDidScroll:(UIScrollView *)aScrollView
{
CGFloat scrollViewOffset = aScrollView.contentOffset.y;
if(scrollViewOffset < 0.0f) {
// postition top
CGRect imageViewRect = self.imageView.frame;
imageViewRect.origin.y = scrollViewOffset;
if(scrollViewOffset < 0.0f && scrollViewOffset >= -50.0f) {
CGFloat newBackdropHeight = kImageHeight - scrollViewOffset;
imageViewRect.size.height = newBackdropHeight;
}
self.imageView.frame = imageViewRect;
}
}
ここで基本的に何が起こっているかというと、ユーザーが上にいるときに上にスクロールしている場合 (バウンスが有効になっている場合)、imageView は一定量のオフセット (ここでは 60px) までスクロールで拡大します。
これに関する問題は、非常に速くスクロールすると、画像のサイズ変更が停止しますが、スクロールビューの残りの部分は通常のように速くスクロールすることです。次に、スクロールビューが元に戻ると、画像がすぐに拡大されてから、本来のように縮小されます (こちらのビデオを参照してください: https://dl.dropbox.com/u/80699/scroll2.m4v )。
この動作では、ユーザーエクスペリエンスはあまり良くなく、ユーザーはジャンプするイメージを見ます.
これを修正する方法を知っている人はいますか?
自分で動作を確認したい場合は、ここに小さなサンプル プロジェクトがあります: https://dl.dropbox.com/u/80699/scroll.zip
ご協力いただきありがとうございます!不明な点がある場合は、コメントを残してください