2016-08-19 7 views
1

UICollectionViewにはUIViewというヘッダーがあります。伸縮性のあるヘッダーを短時間で作成する

ユーザーがスクロールダウンすると、ヘッダーが伸縮性のあるヘッダーエフェクトで引き伸ばされます。

私はこのコードを試してみた:それは0Xを保持(スクロールが開始すると、画像はもう中央にない

  • func scrollViewDidScroll(scrollView: UIScrollView) { 
        if scrollView.contentOffset.y < 0 { 
         self.backgroundImageView?.frame.size.height += -scrollView.contentOffset.y 
         self.backgroundImageView?.frame.size.width += -scrollView.contentOffset.y 
        } 
    } 
    

    をしかし、それは2つの問題点を持っています0y起源だと思います)

  • リリースがタッチしたとき(またはスクロールアップしても)、イメージはサイジングを維持して元のサイズに戻りません。

誰でも手に入るコードを見つけるのに役立ちますか?

答えて

1

トランスフォームを使用してイメージの縮尺を変更すると、結果が得られます。

このようなことを試してみると、scaleFactorを生の値ではなく比率に調整することができますが、それはレイアウトに依存します。

func scrollViewDidScroll(scrollView: UIScrollView) { 
    var scaleFactor:CGFloat = 0.0 
    if scrollView.contentOffset.y < 0 { 
     scaleFactor = -scrollView.contentOffset.y 
    } else { 
     scaleFactor = 1.0 
    } 
    self.backgroundImageView?.transform = CGAffineTransformMakeScale(scaleFactor, scaleFactor) 
} 
+0

スケールは本当に大きいですが、ちょっとスケールが必要です。 'contentOffset'が0に戻ると、元のサイズに戻る代わりに完全に画像が消えます –

+0

あなたは何か考えていますか? –

+0

申し訳ありませんが、コンテンツのオフセットが0以上の場合は、else ...を追加するのを忘れました。スケールを1に設定しました。修正する答えを編集します。サイズについては、あなたはより詳細に行き、最大サイズとオフセットに関連する比率を計算することができます。 –

関連する問題